1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
'Ajouter la bibliothèque suivante :
'Microsoft ActiveX Data Objects x.x Library
Private Sub ConnecterBase(ConnectBD As ADODB.Connection, _
Fichier As String, _
Optional Rs)
Set ConnectBD = New ADODB.Connection
'initialise le jeux d'enregistrements si on l'utilise
If Not IsMissing(Rs) Then
Set Rs = New ADODB.Recordset
End If
'ouvre la connexion
ConnectBD.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX=2;"""
End Sub
Private Sub AjoutALaFeuille()
Dim ConnectBD As ADODB.Connection
Dim NomFeuille As String
Dim ChaineSQL As String
Dim Nom As String
Dim Prenom As String
Dim Adresse As String
Dim CP As String
Dim Ville As String
Dim I As Integer
Dim Fichier As String
'Chemin du fichier, à adapter...
Fichier = "F:\Base de données.xls"
'ouvre la connexion au fichier
ConnecterBase ConnectBD, Fichier
'nom de la feuille devant recevoir les valeurs
NomFeuille = "BDD"
'boucle sur la feuille "Feuil2" pour récupérer les valeurs des différents champs
'afin de les tranférer vers la feuille "BDD" qui se trouve dans le même classeur
With Worksheets("Feuil2")
For I = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
'ici tu peux éviter les variables en entrant directement
'dans la chaine les valeurs mais c'est moins clair
Nom = .Cells(I, 1)
Prenom = .Cells(I, 2)
Adresse = .Cells(I, 3)
CP = .Cells(I, 4)
Ville = .Cells(I, 5)
'construit la chaine SQL
'Col A = F1, Col B = F2, etc...
'les valeurs texte entre apostrophes (') les valeurs date ente dièse (#)
ChaineSQL = "INSERT INTO `" & NomFeuille & "$` "
ChaineSQL = ChaineSQL & "(F1,F2,F3,F4,F5)"
ChaineSQL = ChaineSQL & "VALUES ('" & Nom & "','" & Prenom & "','" & Adresse & "','" & CP & "','" & Ville & "')"
'entre les valeurs dans la feuille servant de base de données
ConnectBD.Execute ChaineSQL
Next I
End With
'ferme la connexion
ConnectBD.Close
End Sub |
Partager