[VBA]
_goni
Messages postés
964
Statut
Membre
-
blux Messages postés 2060 Date d'inscription Statut Modérateur Dernière intervention -
blux Messages postés 2060 Date d'inscription Statut Modérateur Dernière intervention -
Salut,
J’ai un petit problème sur mon insert into. Tout d’abord, voici mon code
Alors je me retrouve avec un message d’erreur qui dit
--
J’ai un petit problème sur mon insert into. Tout d’abord, voici mon code
DoCmd.RunSQL ("insert into Tbl_Temp ([LibReclassement], [LibelleRubriqueDomaine], [NumeroCompte], [LibelleCompte], [Total], [Actival], [NonAffecte]) value (ValLibReclassement, ValLibelleRubriqueDomaine, ValNumeroCompte, ValLibelleCompte, ValTotal, ValActival, ValNonaffecte)")
Alors je me retrouve avec un message d’erreur qui dit
Erreur n°3134 Erreur de syntaxe dans l’instruction NSERT INTO
--
N’oubliez pas de cocher la case quand le problème est résolu
Configuration: Windows XP Internet Explorer 6.0
12 réponses
-
-
Re,
J'ai modifié un peu le code et je tombe sur une nouvelle erreur. Voici mon code :DoCmd.RunSQL ("insert into Tbl_Temp ([LibReclassement], [LibelleRubriqueDomaine], [NumeroCompte], [LibelleCompte], [Total], [Actival], [NonAffecte]) values (" & ValLibReclassement & ", " & ValLibelleRubriqueDomaine & ", " & ValNumeroCompte & ", " & ValLibelleCompte & ", " & ValTotal & ", " & ValActival & ", " & ValNonaffecte & ")")
et maintenant cette erreur qu'il me metErreur n°3075 : Erreur de syntaxe (opérateur absent) dans l’expression ‘champ1, champ2, champ3, champ4, , champ5)’.
J'ai remplacé mes vrai valeurs par champ1, champ2...
Le champ vide c'est juste un string ou j'ai mis une chaine vide.
Pouvez vous m'éclairer sur mon erreur? -
Non, je ne suis pas stagiaire, je suis juste novice en base de données
-
Salut,
quand tu mets un champ vide, il doit être entre "...
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Ca marche pas en faite, je met juste avant ma requète, je fais
If rs("Actival") <> Null Then ValActival = rs("Actival") Else ValActival = "" End If
Comme tu peux le voir c'est une chaine vide et bien etre "" -
Tu feras attention de ne pas confondre la valeur Null avec le test est nul, car un truc comme If toto <> Null renvoie toujours false... (dixit la doc ACCESS)
Alors que If IsNull(toto.value) Then renvoie true ou false selon la valeur...
-
Re,
Alors maintenant c'est une nouvelle erreur :Erreur n°94: Utilisation incorrecte de Null
le code c'est :If IsNull(rs("Actival")) Then ValActival = rs("Actival") Else ValActival = " " End If -
Alors je me suis trompé, si je met ça, je dois inverser les lignes du if avec celle du Else mais je retombe encore sur cet erreur 3075
-
Ce que tu peux faire, c'est déclarer une chaine, la remplir avec ta requête puis l'afficher avant de l'envoyer en exécution...
Dim StrSql as String ... StrSql = "INSERT INTO " StrSql = "StrSql + "table ..." StrSql = StrSql + ";" Msgbox StrSql
C'est ce que je fais systématiquement, de plus, j'encadre les valeurs par des simple-quote (') et non des doubles-quotes ("), ça évite l'empilage des "
-
Oui mais ca ne change rien à mon problème, je n'arrive pas à me débarraser de cette erreur et si je met des (' ') alors je tombe sur l'erreur 94 que j'ai sité au dessus
-
En plus ça ne doit pas venir de ma chaine vide car si je met par exemple "aaa" dans ma chaine qui était vide, j'ai la meme erreur 3075
-
Tu peux m'afficher le texte de te requête qui part à l'exécution ?