Dounej
Messages postés28Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention 7 avril 2007
-
19 mars 2007 à 22:54
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 2016
-
20 mars 2007 à 15:33
Bonjour,
Je veux creer une base Access uniquement par programmation (sans Adodc) sur le principe Excel ci-dessous.
(Cette base comprendra 200 colonnes)
Avez-vous un code à me proposer
ou connaissance d'un exemple sur ce site qui pourrait répondre à ma question ?
Cordialement
Marc
Exemple pour Excell :
Public Function CreerFichier()
'on dit que l'objet est de type feuille excel et ouvre Excel
Set DocExcel = CreateObject("Excel.Application")
'mettre à True pour l'afficher à l'écran , mettre à False pour pas qu'Excel reste invisible
If AfficherExcel = True Then
DocExcel.Visible = True
Else
DocExcel.Visible = False
End If
'supprime l'affichage des messages d'erreurs ou de confirmation de suppression, ...
DocExcel.DisplayAlerts = False
'ajoute un nouveau classeur
If NouveauFichier Then
DocExcel.Workbooks.Add
'selectionne la feuille du classeur
DocExcel.Sheets("Feuil2").Select
'on supprime cette feuille
DocExcel.ActiveWindow.SelectedSheets.Delete
'on fait pareil avec la feuille 3
DocExcel.Sheets("Feuil3").Select
DocExcel.ActiveWindow.SelectedSheets.Delete
'on selectionne la feuille 1 (la seule qui reste)
DocExcel.Sheets("Feuil1").Select
'on change le nom de celle ci
DocExcel.Sheets("Feuil1").Name = "Mon Document Excel"
Else
DocExcel.Workbooks.Open FileName:=NomFichier, Editable:=True
End If
ValOperation (10)
'on change la largeur de la colonne
DocExcel.Columns("A:A").ColumnWidth = 20
ValOperation (10)
'on met la date et l'heure
DocExcel.Range("A1").Select
test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE09, False, False, 0, False)
DocExcel.ActiveCell.FormulaR1C1 = "Fait le : " & Date & " à " & Time
ValOperation (10)
'du texte
DocExcel.Range("A2").Select
test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE11, False, False, 0, False)
DocExcel.ActiveCell.FormulaR1C1 = "Par un petit programme Vb"
ValOperation (10)
'une fusion de cellule
DocExcel.Range("A5:D5").Select
test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE14, False, False, 0, True)
DocExcel.ActiveCell.FormulaR1C1 = "Fusion des Cellules"
ValOperation (10)
'on change la police
DocExcel.Range("A6:G6").Select
test = ParametreExcel(DocExcel, "MS Sérif", TAILLEPOLICE09, True, True, 4, True)
DocExcel.ActiveCell.FormulaR1C1 = "On change la police et on met en gras, en italic et on aligne à droite"
ValOperation (30)
'on sauvegarde la feuille sous le nom contenu dans NomFichier
DocExcel.ActiveWorkbook.SaveAs FileName:=NomFichier, _
FileFormat:=17, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ValOperation (10)
'on quitte excel
DocExcel.Application.Quit
End Function
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 19 mars 2007 à 23:34
Salut,
j'ai pas cherché mais je pense qu'il doit y avoir des centaines de sources sur le sujet.
Voici un exemple d'une de mes sources (sur les doublons) :
Dim BddTemp As Database
Dim TableTemp As TableDef
Dim ChampsTemp As Field
Dim NomFichier As String, sql As String
Dim i As Integer, j As Integer
' donne le nom du fichier
NomFichier = App.Path & "\NomDeLaBase.mdb"
' références pour la création de la base de données, l'ouverture de celle-ci et on crée
' la table et le champs
Set BddTemp = CreateDatabase(NomFichier, dbLangGeneral)
Set BddTemp = OpenDatabase(NomFichier)
Set TableTemp = BddTemp.CreateTableDef("Nom de la table")
Set ChampsTemp = TableTemp.CreateField("Nom du champ", dbText)
TableTemp.Fields.Append ChampsTemp
BddTemp.TableDefs.Append TableTemp
BddTemp.Close
' ouverture de la base pour écriture
Set BddTemp = DBEngine.Workspaces(0).OpenDatabase(NomFichier)
DoEvents
For i = 1 To 10
MaValeur = "Valeur " & i
' et création de la requête
sql = "INSERT INTO Nom de la table (Nom du champ) VALUES ('" & MaValeur & "')"
' ^ pour insérer ^ dans table ^ et champs ^ cette valeur
BddTemp.Execute sql ' puis on l'exécute
Next i
BddTemp.Close ' une fois terminé, ferfrmDoublonsture de la base
' un p'tit Messsage pour avertir l'utilisateur que c'est fait
MsgBox "Le fichier a bien été enregistré à l'emplacement suivant :" & vbCrLf & NomFichier
Ce programme est très simple et très didactique car il explique chacune des étapes.
(j'avais au préalable fait une longue recherche sur ce site pour trouver une source convenable, le moteur de recherche n'a jamais présenté cette source !,
alors merci de nouveau =17710 Exploreur )