VBA/SQL Access
Résolu/Fermé
samsam26
Messages postés
105
Date d'inscription
vendredi 6 février 2009
Statut
Membre
Dernière intervention
4 mars 2013
-
29 avril 2010 à 20:37
samsam26 Messages postés 105 Date d'inscription vendredi 6 février 2009 Statut Membre Dernière intervention 4 mars 2013 - 1 mai 2010 à 11:05
samsam26 Messages postés 105 Date d'inscription vendredi 6 février 2009 Statut Membre Dernière intervention 4 mars 2013 - 1 mai 2010 à 11:05
A voir également:
- VBA/SQL Access
- Récupération serveur sql - Télécharger - Gestion de données
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Find vba - Astuces et Solutions
- You don't have permission to access this resource ✓ - Forum Réseaux sociaux
- Incompatibilité de type vba ✓ - Forum Programmation
4 réponses
blux
Messages postés
26001
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 avril 2024
3 289
29 avril 2010 à 21:37
29 avril 2010 à 21:37
Salut,
quels sont les champs de la table 'ordonnance' (et de quels types) ?
En principe, une requête INSERT INTO utilise des simples quotes comme délimiteurs de valeurs.
Pourquoi commences-tu par une virgule ?
quels sont les champs de la table 'ordonnance' (et de quels types) ?
En principe, une requête INSERT INTO utilise des simples quotes comme délimiteurs de valeurs.
Pourquoi commences-tu par une virgule ?
samsam26
Messages postés
105
Date d'inscription
vendredi 6 février 2009
Statut
Membre
Dernière intervention
4 mars 2013
6
29 avril 2010 à 22:04
29 avril 2010 à 22:04
"INSERT INTO Ordonnance VALUES('',#" & recdate & "#," & numpatient & "," & nummedecin & ");"
Salut. Bien parce que j'ai pris pour habitude de faire mes requêtes INSERT INTO de cette manière: je ne met pas le nom des champs après celui de la table (comme ici par exemple: INSERT INTO Ordonnance(numero, date, patient, medecin) ....)
Je décide directement des valeurs (dans l'ordre): C'est pour ça que le premier champ à remplir n'est pas renseigné (auto incrementation) j'ai donc VALUES('', 'date', 'patient', 'medecin')...
Je n'ai donc pas du tout commencé par une virgule...
Salut. Bien parce que j'ai pris pour habitude de faire mes requêtes INSERT INTO de cette manière: je ne met pas le nom des champs après celui de la table (comme ici par exemple: INSERT INTO Ordonnance(numero, date, patient, medecin) ....)
Je décide directement des valeurs (dans l'ordre): C'est pour ça que le premier champ à remplir n'est pas renseigné (auto incrementation) j'ai donc VALUES('', 'date', 'patient', 'medecin')...
Je n'ai donc pas du tout commencé par une virgule...
blux
Messages postés
26001
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 avril 2024
3 289
29 avril 2010 à 22:07
29 avril 2010 à 22:07
Ok, donc quels sont les types de tes champs ?
samsam26
Messages postés
105
Date d'inscription
vendredi 6 février 2009
Statut
Membre
Dernière intervention
4 mars 2013
6
30 avril 2010 à 13:12
30 avril 2010 à 13:12
Alors il y a les champs:
-n°ordonnance de type numeroAuto
-date de type date
-n°patient de type numérique
-n°medecin de type numérique
Ensuite les variables patient, medecin et champdate proviennent des zones de texte dans mon formulaire (qui sont appellée comme ça).
Je ne vois pas d'où provient ce problème de type, car les données sont ultra cohérente, mais vu que je n'ai jamais trop utilisé le VBA et Access, je n'ai pas assez d'experience pour reconnaitre un problème.
J'ai testé tout les types des variables utilisée avec msgBox(VarType(variable)) et tout à l'air bon.
Enfin une précision que j'ai oublié: la ligne que le debug signal en erreur est celle ou la requete s'execute. (Docmd.RunSQL req ou cnxn.Execute (req) selon la version)
Merci pour cette petite consécration de temps que tu m'accorde =)
-n°ordonnance de type numeroAuto
-date de type date
-n°patient de type numérique
-n°medecin de type numérique
Ensuite les variables patient, medecin et champdate proviennent des zones de texte dans mon formulaire (qui sont appellée comme ça).
Je ne vois pas d'où provient ce problème de type, car les données sont ultra cohérente, mais vu que je n'ai jamais trop utilisé le VBA et Access, je n'ai pas assez d'experience pour reconnaitre un problème.
J'ai testé tout les types des variables utilisée avec msgBox(VarType(variable)) et tout à l'air bon.
Enfin une précision que j'ai oublié: la ligne que le debug signal en erreur est celle ou la requete s'execute. (Docmd.RunSQL req ou cnxn.Execute (req) selon la version)
Merci pour cette petite consécration de temps que tu m'accorde =)
blux
Messages postés
26001
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 avril 2024
3 289
30 avril 2010 à 13:28
30 avril 2010 à 13:28
Je viens de trouver un truc, tes # ne sont pas enquotés.
Je ferais un truc comme ça :
Je ferais un truc comme ça :
VALUES('','#" & recdate & "#'," & numpatient & "," & nummedecin & ");"
blux
Messages postés
26001
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 avril 2024
3 289
30 avril 2010 à 13:42
30 avril 2010 à 13:42
Et si ça ne marche pas, imaginer mettre la date en format british (mm/jj/aa)...
samsam26
Messages postés
105
Date d'inscription
vendredi 6 février 2009
Statut
Membre
Dernière intervention
4 mars 2013
6
30 avril 2010 à 18:53
30 avril 2010 à 18:53
Après mes recherches, j'y ai songé (car SQL prend les dates sous cette forme là je crois), mais je ne sais pas du tout comment faire...
samsam26
Messages postés
105
Date d'inscription
vendredi 6 février 2009
Statut
Membre
Dernière intervention
4 mars 2013
6
1 mai 2010 à 10:37
1 mai 2010 à 10:37
sa ne marche toujours pas voici le message d'erreur:"le nombre de valeurs de la requêtes doit coincider avec le nombre de champs destination"
samsam26
Messages postés
105
Date d'inscription
vendredi 6 février 2009
Statut
Membre
Dernière intervention
4 mars 2013
6
1 mai 2010 à 11:05
1 mai 2010 à 11:05
Merci beaucoup à toi Blux!
Le problème venait bien de la date, et tu m'a permis de le regler en quelque minutes.
Voici ma nouvelle requête:
req = "INSERT INTO Ordonnance([date], [n°client], [n°medecin]) VALUES('" & recdate & "'," & numpatient & "," & nummedecin & ");"
comme tu me l'a dit, je n'ai pas mis le champ de type numeroAuto.
puis j'ai modifié la date, car ça ne marchait pas même au format anglais, je l'ai mis de type string pour éviter tout les petits soucis dûs au format de la date, et ça marche niquel! =)
Le problème venait bien de la date, et tu m'a permis de le regler en quelque minutes.
Voici ma nouvelle requête:
req = "INSERT INTO Ordonnance([date], [n°client], [n°medecin]) VALUES('" & recdate & "'," & numpatient & "," & nummedecin & ");"
comme tu me l'a dit, je n'ai pas mis le champ de type numeroAuto.
puis j'ai modifié la date, car ça ne marchait pas même au format anglais, je l'ai mis de type string pour éviter tout les petits soucis dûs au format de la date, et ça marche niquel! =)