Pb requete Access / VB
Vincent
-
Vincent -
Vincent -
Bonjour,
Je cherche actuellement à faire une requete d'insertion (dans une seule table) à partir d'un formulaire access. Cependant, certaines des valeurs que je désire inserer nécessaite l'appel à une autre requete pour récupérer par exemple d'identifiant correspondant a la valeur d'un champ du formulaire (type de fichier dans mon cas).
Comment faire pour executer d'abord mes 2 requetes préalables pour récupérer les valeurs que je veux inserer (donc les stocker : dans une variable en vb ?) puis a partir des valeurs récupérées effectuer l'insertion désirée dans la table.
Merci d'avance,
Vincent
Je cherche actuellement à faire une requete d'insertion (dans une seule table) à partir d'un formulaire access. Cependant, certaines des valeurs que je désire inserer nécessaite l'appel à une autre requete pour récupérer par exemple d'identifiant correspondant a la valeur d'un champ du formulaire (type de fichier dans mon cas).
Comment faire pour executer d'abord mes 2 requetes préalables pour récupérer les valeurs que je veux inserer (donc les stocker : dans une variable en vb ?) puis a partir des valeurs récupérées effectuer l'insertion désirée dans la table.
Merci d'avance,
Vincent
4 réponses
-
Rien de tel qu'un peu de code VBA.
As-tu des notions de VBA?
Rien n'est plus dangereux qu'une idée quand on a
qu'une idée :-) -
Oui quelques unes (vraiment vite fait), je me suis dit que je pourrais utiliser DoCmd.OpenQuery mais impossible de stocker ca dans une variable, faut-il utiliser des techniques spéciales d'accès aux données avec des objets recordset et tout ce qui va avec ? Sinon, comment je peux ramener les résultat de mes 2 requetes dans 2 variable en utilisant seulement le vb ?
Merci de ta réponse
Vincent -
Aller, un petit exemple:
Je suppose que le form contien un bouton nommé "Bounton":
Private Sub Bouton_Click() Dim mDb As Database Dim mRs1, mRs2 As RecordSet Set mDb = CurrentDb Set mRs1 = mDb.Openrecordset("Nom de la table dans laquelle tu insère",dbOpenDynaset, dbSeeChanges, dbPessimistic) Set mRs2 = mDb.Openrecordset("Nom de la table dans laquelle tu recherche",dbOpenDynaset, dbSeeChanges, dbPessimistic) mRs2.FindFirst ("Ton critère de recherche") mRs1.AddNew mRs1("Champ1") = mRs2("Champ2").Value mRs1("Valeur1") = 125 mRs1.Update mDb.Close End Sub
Remarque: Quand tu sélectionnes un mot dans le prog (par exemple "FindFirst") et que tu appuyes sur F1, l'aide en ligne te propose des exemples très utilses.
Rien n'est plus dangereux qu'une idée quand on a
qu'une idée :-) -
Ok merci, j'ai compris le principe, si je potasse un peu je devrais trouver comment executer une requete par le OpenRecordset pour inserer tout d'un coup (avec une requete d'insertion sql construite à partir des résultat des autres requetes)
Merci encore