Bensor
Messages postés19Date d'inscriptiondimanche 9 novembre 2003StatutMembreDernière intervention13 décembre 2004
-
10 déc. 2004 à 16:12
Bensor
Messages postés19Date d'inscriptiondimanche 9 novembre 2003StatutMembreDernière intervention13 décembre 2004
-
13 déc. 2004 à 11:41
Bonsoir,
Voilà, je suis en train de faire un formulaire Access et j'exécute une requête SQL en VB. Cette requête fonctionne parfaitement sous l'interpreteur Access, mais sous vb access j'obtiens le message "Argument invalide" lors du clic sur le bouton qui exécute la requête. Ensuite, j'avais l'intention d'ouvrir un 2° formulaire lors de l'appui du bouton où les champs prennent les valeurs de la requête
Voici mon code
-------------------------------------
Private Sub bt1_Click()
On Error GoTo Err_bt1_Click
If IsNull(Texte0) = False Then
Dim stLinkCriteria As String
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("SELECT Count([ETAT].[code_etat]) AS code_et, Sum([TOURNEE].[SNCF_tournee]) AS SNCFT_et, Sum([TOURNEE].[voiturevp_tournee]) AS kmT_et, Sum([TOURNEE].[avion_tournee]) AS avionT_et, Sum([TOURNEE].[location_tournee]) AS vlocT_et, Sum([TOURNEE].[taxi_tournee]) AS taxiT_et, Sum([TOURNEE].[autre_tournee]) AS autreT_etat, Sum([TOURNEE].[parking_tournee]) AS parkingT_etat, Sum([TOURNEE].[repas_tournee]) AS repas_et, Sum([TOURNEE].[repascantine_tournee]) AS repascantine_et FROM TOURNEE, ETAT WHERE [TOURNEE].[code_etat]=[ETAT].[code_etat] And [TOURNEE].[ref_om]= " + Texte0 + " ;", dbOpenDynaset)
Dim essai As String
essai = rst.Fields(0)
MsgBox essai
DoCmd.OpenForm "Formulaire2", , , stLinkCriteria
Else
MsgBox "Votre saisie est incorrecte "
End If
End Sub
-----------------------------
A savoir que même en n'executant que la requête sous vb, même en remplacant " "+Texte0+" " par l'argument d'origine, qui était 3, ça plante, et que j'ai parcouru différents forums, dont celui-ci, et que sans inclure le code relatif à la requête, le code s'execute correctement
Etant newbie en vb, je suis sûr que vous pourrez m'aider, mais ne pourrai répondre que lundi.
cs_caspal
Messages postés14Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention22 février 20061 10 déc. 2004 à 22:31
Salut,
Désolé, ton code est correct, pas de plantage
pour ton 2è formulaire avec le résultat de la requête,
définir la source du formulaire sur la table "TOURNEE"
+
DoCmd.OpenForm "2èFORM", , , "requeteSQL"
sur le bouton
Bensor
Messages postés19Date d'inscriptiondimanche 9 novembre 2003StatutMembreDernière intervention13 décembre 2004 13 déc. 2004 à 10:30
Le problème semble se situer à la ligne "Set rst = CurrentDb.OpenRecordset("SELECT Count([ETAT].[code_etat]) AS code_et, Sum([TOURNEE].[SNCF_tournee]) AS SNCFT_et, Sum([TOURNEE].[voiturevp_tournee]) AS kmT_et, Sum([TOURNEE].[avion_tournee]) AS avionT_et, Sum([TOURNEE].[location_tournee]) AS vlocT_et, Sum([TOURNEE].[taxi_tournee]) AS taxiT_et, Sum([TOURNEE].[autre_tournee]) AS autreT_etat, Sum([TOURNEE].[parking_tournee]) AS parkingT_etat, Sum([TOURNEE].[repas_tournee]) AS repas_et, Sum([TOURNEE].[repascantine_tournee]) AS repascantine_et FROM TOURNEE, ETAT WHERE [TOURNEE].[code_etat]=[ETAT].[code_etat] And [TOURNEE].[ref_om]= " + Texte0 + " ;", dbOpenDynaset)
"
Bensor
Messages postés19Date d'inscriptiondimanche 9 novembre 2003StatutMembreDernière intervention13 décembre 2004 13 déc. 2004 à 10:36
Bon, j'ai essayé un nouveau truc sur un site, qui me semble plus logique vu mon expérience en java. Voici le code modifié (l'ouverture du 2° formulaire est mis en commentaires)
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("Requete_etat_total")
rst.MoveFirst
Dim essai As String
essai = rst("code_et")
MsgBox essai
or, j'obtiens le message d'erreur "Trop peu de paramètres. 1 attendu"
Vous n’avez pas trouvé la réponse que vous recherchez ?
J'obtiens à présent le message "Incompatibilité de type". Si je met "DAO.Recordset" à la place de "Recordset", j'obtiens le message étrange "Erreur de compilation : Type défini par l'utilisateur non défini"
A votre avis, à quoi ces erreurs sur un code fonctionnant à coup sûr sont dûes? Et comment faire fonctionner le code?