Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/07/2011, 15h09   #1
Membre du Club
 
Inscription : octobre 2005
Messages : 304
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 304
Points : 59
Points : 59
Par défaut Erreur syntaxe SQL

Bonjour, j'alimente une table Access à l'aide du contenu de cellule d'un fichier excel.
Dans la table, j'ai des champs numérique qui peuvent être null.
Quand dans le fichier excel j'ai des cellules vides ça fait planter la requete en disant erreur de syntaxe.
J'ai pris la requete et l'ai testé dans Access en mettant 0 sur le champs qui pose probleme et bien sur la ça marche.
Il n'aime pas quand les cellules sont vides, mais je sais pas ce que je dois faire ?
Testé si la cellule est vide et dans ce cas mettre "null" dans la requete ou bien qu'est ce que je peux faire d'autre ?
merci de votre aide
_developpeur_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 16h08   #2
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
Bonjour,

Comment alimentes-tu ta table Access ? par un import de ton fichier Excel ? par une liaison puis pas un SQL ?
Si c'est par SQL, essaye la syntaxe
Code :
... IFF(ISNULL(mon_champ),<valeur_si_vrai>,mon_champ) AS mon_champ_sans_valeur_null ...
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
si tout est OK, n'oubliez pas de cliquer sur
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 16h48   #3
Membre du Club
 
Inscription : octobre 2005
Messages : 304
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 304
Points : 59
Points : 59
Citation:
Envoyé par dumas.blr Voir le message
Bonjour,

Comment alimentes-tu ta table Access ? par un import de ton fichier Excel ? par une liaison puis pas un SQL ?
Si c'est par SQL, essaye la syntaxe
Code :
... IFF(ISNULL(mon_champ),<valeur_si_vrai>,mon_champ) AS mon_champ_sans_valeur_null ...
Bonjour, merci pour la réponse. J'ouvre un fichier excel, je parcours les cellules et a chaque nouvelle ligne je crée une requete INSERT INTO.

Donc je dois mettre ta syntaxe dans l'INSERT ?

Merci.
_developpeur_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 17h09   #4
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
Oui, tout à fait,

sinon tu peux tester dans ton code VBA la valeur de ta cellule Excel en utilisant la syntaxe
Code :
1
2
3
4
5
6
if(isnull(ma cellule_excel)) then
    mon champ_dest = valeur_si_null
else
   mon champ_dest = ma cellule_excel
end if
sqlInsert = "INSERT INTO ma_table values (" & mon champ_dest & "," ....
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
si tout est OK, n'oubliez pas de cliquer sur
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 21h14   #5
Membre du Club
 
Inscription : octobre 2005
Messages : 304
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 304
Points : 59
Points : 59
Citation:
Envoyé par dumas.blr Voir le message
Oui, tout à fait,

sinon tu peux tester dans ton code VBA la valeur de ta cellule Excel en utilisant la syntaxe
Code :
1
2
3
4
5
6
if(isnull(ma cellule_excel)) then
    mon champ_dest = valeur_si_null
else
   mon champ_dest = ma cellule_excel
end if
sqlInsert = "INSERT INTO ma_table values (" & mon champ_dest & "," ....
ok merci je vais tester la valeur de la cellule dans le code plutot que dans la requete.
_developpeur_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h16.


 
 
 
 
Partenaires

Hébergement Web