VBA probleme avec insert into
abaline
-
abaline -
abaline -
Bonjour,
Je voudrais concatener via le VBA les choix faits dans une zone a choix multiples, j'ai bien sur fait maintes essai ..
je ne sais pas trop si mon problème viens de ma concatenation ou de l'insert into , peut etre les 2 me direz vous ..
Income_gen est le champs de la liste déroulante, et le champs ou l'enregistrement doit se faire dans ma table tbl_lc_lu
voici mon code
Private Sub Income_gen_current()
Dim varI As Variant
Dim Selec As String
Dim strSQL As String
Dim MyDB As DAO.Database
Selec = ""
If Me.Income_gen.ItemsSelected.Count <> 0 Then
For Each varI In Me!Income_gen.ItemsSelected
Selec = "Selec & Me![Income_gen].ItemData(varI)"
Next varI
End If
MsgBox Selec
Set MyDB = CurrentDb
strSQL = "INSERT INTO [Tbl_lc_lu] [Income_gen] VALUES (""&Selec& "")"
CurrentDb.Execute Selec
MsgBox Selec
End Sub
merci de m'aider s'il vous plait je patine pas mal.
Je voudrais concatener via le VBA les choix faits dans une zone a choix multiples, j'ai bien sur fait maintes essai ..
je ne sais pas trop si mon problème viens de ma concatenation ou de l'insert into , peut etre les 2 me direz vous ..
Income_gen est le champs de la liste déroulante, et le champs ou l'enregistrement doit se faire dans ma table tbl_lc_lu
voici mon code
Private Sub Income_gen_current()
Dim varI As Variant
Dim Selec As String
Dim strSQL As String
Dim MyDB As DAO.Database
Selec = ""
If Me.Income_gen.ItemsSelected.Count <> 0 Then
For Each varI In Me!Income_gen.ItemsSelected
Selec = "Selec & Me![Income_gen].ItemData(varI)"
Next varI
End If
MsgBox Selec
Set MyDB = CurrentDb
strSQL = "INSERT INTO [Tbl_lc_lu] [Income_gen] VALUES (""&Selec& "")"
CurrentDb.Execute Selec
MsgBox Selec
End Sub
merci de m'aider s'il vous plait je patine pas mal.
A voir également:
- VBA probleme avec insert into
- Touche insert - Guide
- Disk boot failure insert system disk and press enter - Guide
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Touche insert sur clavier portable hp ✓ - Forum Clavier
- Vba range avec variable ✓ - Forum VB / VBA
10 réponses
Regarde ici
Selec = "Selec & Me![Income_gen].ItemData(varI)"
Je pense qu'il faudrait enlever les " " non ?
Selec = Selec & Me![Income_gen].ItemData(varI)
Cdlt
Selec = "Selec & Me![Income_gen].ItemData(varI)"
Je pense qu'il faudrait enlever les " " non ?
Selec = Selec & Me![Income_gen].ItemData(varI)
Cdlt
De plus n'hésite pas a faire un message box sur ton strSQL pour voir et dans
VALUES (""&Selec& "")" faut mettre des espaces
strSQL = "INSERT INTO Tbl_lc_lu (Income_gen) VALUES ("" & Selec & "")"
Je ne suis pas sur, ça fait un moment que je n'ai pas touché au VBA et je ne suis pas un pro :p
Cdlt.
VALUES (""&Selec& "")" faut mettre des espaces
strSQL = "INSERT INTO Tbl_lc_lu (Income_gen) VALUES ("" & Selec & "")"
Je ne suis pas sur, ça fait un moment que je n'ai pas touché au VBA et je ne suis pas un pro :p
Cdlt.
merci mais cela ne résout pas le problème, j'ai un message d'erreur qui s'affiche :
le moteur de base de données microsoft office access ne peut pas trouver la table ou la requête source "".
assurez-vous qu'elle existe et qu'elle est correctement orthographiée .
( erreur d'execution '3078'
le moteur de base de données microsoft office access ne peut pas trouver la table ou la requête source "".
assurez-vous qu'elle existe et qu'elle est correctement orthographiée .
( erreur d'execution '3078'
SQL = "INSERT INTO TABLE1(champ) VALUES ("" & Selec & "")"
CurrentDb.Execute SQL
Tu remplaces TABLE1 par le nom de ta table.
Tu remplaces champ par le champ de ta table.
Je viens de faire le teste est ça fonctionne chez moi !
Fait quand meme un msgbox strSQL.
Cdlt.
CurrentDb.Execute SQL
Tu remplaces TABLE1 par le nom de ta table.
Tu remplaces champ par le champ de ta table.
Je viens de faire le teste est ça fonctionne chez moi !
Fait quand meme un msgbox strSQL.
Cdlt.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voilà tu n'as plus qu'a faire un copier coller :p
Cordialement.
If Me.Income_gen.ItemsSelected.Count <> 0 Then For Each varI In Me!Income_gen.ItemsSelected If selec = "" Then selec = Me!Income_gen.ItemData(varI) Else selec = selec & "," & Me!Income_gen.ItemData(varI) End If Next varI End If strSQL = "INSERT INTO tbl_lc_lu(Income_gen) VALUES ('" & selec & "')" CurrentDb.Execute strSQL
Cordialement.
sa marche ! merci beaucoup nirG95, j'avais fais une erreur bête (je m'y attendai un peu ! )
j'avais mis " "&selec&" " au lieu de ' "& selec& " '
encore merci !
j'avais mis " "&selec&" " au lieu de ' "& selec& " '
encore merci !
hum voila une chose a laquelle je n'ai pas pense, cela n'enregistre pas les données dans la même ligne que le reste des champs du formulaire ce qui est assez gênant,
vu l'organisation de mon code je ne devrais pourtant pas en être étonné, j'ai change la structure pour mettre cette commende dans le bouton de sauvegarde, mais voila du coup j'ai la commande de sauvegarde puis l'enregistrement de ce champs..
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Me.AllowEdits = True
Dim varI As Variant
Dim Selec As String
Dim strSQL As String
Dim MyDB As DAO.Database
If Me.Income_gen.ItemsSelected.Count <> 0 Then
a = Me.No_Id
For Each varI In Me!Income_gen.ItemsSelected
Selec = Selec & Me![Income_gen].ItemData(varI) & ";"
Next varI
End If
MsgBox Selec
Set MyDB = CurrentDb
SQL = "INSERT INTO tbl_lc_lu (Income_gen,No_Id) VALUES ('" & Selec & "')"
CurrentDb.Execute SQL
MsgBox Selec
MsgBox strSQL
une idée pour que tous s'enregistre en même temps ?
vu l'organisation de mon code je ne devrais pourtant pas en être étonné, j'ai change la structure pour mettre cette commende dans le bouton de sauvegarde, mais voila du coup j'ai la commande de sauvegarde puis l'enregistrement de ce champs..
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Me.AllowEdits = True
Dim varI As Variant
Dim Selec As String
Dim strSQL As String
Dim MyDB As DAO.Database
If Me.Income_gen.ItemsSelected.Count <> 0 Then
a = Me.No_Id
For Each varI In Me!Income_gen.ItemsSelected
Selec = Selec & Me![Income_gen].ItemData(varI) & ";"
Next varI
End If
MsgBox Selec
Set MyDB = CurrentDb
SQL = "INSERT INTO tbl_lc_lu (Income_gen,No_Id) VALUES ('" & Selec & "')"
CurrentDb.Execute SQL
MsgBox Selec
MsgBox strSQL
une idée pour que tous s'enregistre en même temps ?
Bonjour Abaline,
Je ne comprend pas trop ta question ! Tu as d'autres champs sur ton formulaire ? Si oui, il faut mettre tout les champs dans ton insert into !
Je suppose que No_Id est un champs de ta table tbl_lc_lu !
SQL = "INSERT INTO tbl_lc_lu(Income_gen,No_Id) VALUES ('" & Selec & "','" & Me.No_ld & "')"
Je ne vois pas a quoi te sert la variable a !
Cdlt.
Je ne comprend pas trop ta question ! Tu as d'autres champs sur ton formulaire ? Si oui, il faut mettre tout les champs dans ton insert into !
Je suppose que No_Id est un champs de ta table tbl_lc_lu !
SQL = "INSERT INTO tbl_lc_lu(Income_gen,No_Id) VALUES ('" & Selec & "','" & Me.No_ld & "')"
Je ne vois pas a quoi te sert la variable a !
Cdlt.