Bonjour,
Je suis à créer une petite application avec un UserForm qui se connecte à un fichier Excel fermé qui sert de base de données.
Je me suis inspiré de l'approche de SilkyRoad sur Développez.com afin de bâtir mon code. J'ai modifié le driver afin de permettre la connexion au fichier de base de données de type .xlsx. De plus, je confirme que :
De plus, je me questionne aussi sur l'aspect d'insertion d'une ligne à la base de données pour chaque nouvelle entrée en provenance du UserForm.
Voici mon code actuel
Merci à l'avance pour votre collaboration.
Je suis à créer une petite application avec un UserForm qui se connecte à un fichier Excel fermé qui sert de base de données.
Je me suis inspiré de l'approche de SilkyRoad sur Développez.com afin de bâtir mon code. J'ai modifié le driver afin de permettre la connexion au fichier de base de données de type .xlsx. De plus, je confirme que :
- l'ensemble des variables de type String sont identiques aux entêtes de colonnes du fichier de base de données,
- les données sont dans le même ordre que les champs dans la base de données,
- le fichier de référence ainsi que la feuille sont des Constantes établies.
De plus, je me questionne aussi sur l'aspect d'insertion d'une ligne à la base de données pour chaque nouvelle entrée en provenance du UserForm.
Voici mon code actuel
VB:
Private Sub CmdDeclaration_Click()
'Les variables
Dim ConnLog As ADODB.Connection
Dim StrSQL As String
Dim DtHr As Date
Dim NoYe As Integer
Dim NomComplet As String, Ordi As String, SIGN As String
Dim Q1 As String, Q2 As String, Q3 As String, Q4 As String, Q5 As String, Q6 As String, Q7 As String
'Les données à insérer:
NomComplet = Me.CboListeEmpl
NoYe = Me.LblNoDeclare
Ordi = ""
Q1 = Me.CboQ1
Q2 = Me.CboQ2
Q3 = Me.CboQ3
Q4 = Me.CboQ4
Q5 = Me.CboQ5
Q6 = Me.CboQ6
Q7 = Me.CboQ7
SIGN = Me.TxtAA & Me.TxtMM & Me.TxtJJ & Me.LblNoDeclare
DtHr = Now()
Set ConnLog = New ADODB.Connection
With ConnLog
.Provider = "MSDASQL"
.ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};" & _
"DBQ=" & Fichier1 & "; ReadOnly=False;"
.Open
End With
'Les données doivent être indiquées dans le même ordre que les champs dans la base de données.
StrSQL = "INSERT INTO [" & Feuille & "] " _
& "VALUES (" & NomComplet & ", " & NoYe & ", " & Ordi & ", " & Q1 & ", " & Q2 & ", " & Q3 & ", " & Q4 & ", " & Q5 & ", " & Q6 & ", " & Q7 & ", " & SIGN & ", #" & DtHr & "# )"
ConnLog.Execute StrSQL 'Erreur d'exécution...[Microsoft][Pilote ODBC Excel] Erreur de syntaxe (opérateur absent) dans l'expression "Valeur de NomComplet"
ConnLog.Close
Set ConnLog = Nothing
End Sub
Merci à l'avance pour votre collaboration.