Connexion à une autre base de données

Le
Jpmill
Bonjour voici mon problème :


J'ai 2 bases de donnée Access 2003 dans le même répertoire sur mon PC=
.
Je veux à partir d'un bouton de commande dans un formulaire , pouvoir
faire une requête SQL sur ma 2e base de données. je ne suis pas sur de
la bonne technique à utilser. J'aimerais avoir le code VBA qu'il faut
utiliser pour que ça fontionne.


Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Eric
Le #17374651
Bonsoir,

Tu peux faire quelque chose du genre pour une requête Selection, si mes
souvenirs sont encore bons:

Sur l'évènement clic de ton bouton:

Private Sub Commande0_Click
'Charger la référence Microsft DAO Object Library 3.x
Dim strSQL as String ' stockage de la chaine SQL
Dim qry as DAO.Querydef
strSQL = "SELECT * " _
& "FROM LaTable " _
& "IN """ & CurrentProject.Path & "NomAutreBase.mdb"" " _
& "WHERE LaConditionEventuelle ;"
Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
DoCmd.OpenQuery "tmp" ' Ouverure de la requête
CurrentDb.QueryDefs.Delete "tmp" ' Suppression de la requête
' car recréée à chaque lancement
Set qry = Nothing
End Sub



Jpmill a écrit :
Bonjour voici mon problème :


J'ai 2 bases de donnée Access 2003 dans le même répertoire sur mon PC.
Je veux à partir d'un bouton de commande dans un formulaire , pouvoir
faire une requête SQL sur ma 2e base de données. je ne suis pas sur de
la bonne technique à utilser. J'aimerais avoir le code VBA qu'il faut
utiliser pour que ça fontionne.


Merci




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Jpmill
Le #17374891
On 29 sep, 13:23, Eric
Bonsoir,

Tu peux faire quelque chose du genre pour une requête Selection, si mes
souvenirs sont encore bons:

Sur l'évènement clic de ton bouton:

Private Sub Commande0_Click
   'Charger la référence Microsft DAO Object Library 3.x
   Dim strSQL as String ' stockage de la chaine SQL
   Dim qry as DAO.Querydef
   strSQL = "SELECT * " _
         & "FROM LaTable " _
         & "IN """ & CurrentProject.Path & "NomAutreBase.mdb"" " _
         & "WHERE LaConditionEventuelle ;"
   Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
   DoCmd.OpenQuery "tmp" ' Ouverure de la requête
   CurrentDb.QueryDefs.Delete "tmp" ' Suppression de la requête
                                   ' car recréée à chaque lancement
   Set qry = Nothing
End Sub

Jpmill a écrit :

> Bonjour voici mon problème :

> J'ai 2 bases de donnée Access 2003 dans le même répertoire sur mo n PC.
> Je veux à partir d'un bouton de commande dans un formulaire , pouvoir
> faire une requête SQL sur ma 2e base de données. je ne suis pas sur de
> la bonne technique à utilser. J'aimerais avoir le code VBA qu'il faut
> utiliser pour que ça fontionne.

> Merci

--
A+
Erichttp://www.mpfa.info/
Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl=f r



Ok est-ce que il est possible de mettre ça dans un genre de recordset
pour pouvoir y faire des "move next" etc....???
Eric
Le #17375791
re,

Tu modifies comme suit:

Private Sub Commande0_Click
'Charger la référence Microsft DAO Object Library 3.x
Dim strSQL as String ' stockage de la chaine SQL
Dim rst as DAO.Recordset
strSQL = "SELECT * " _
& "FROM LaTable " _
& "IN """ & CurrentProject.Path & "NomAutreBase.mdb"" " _
& "WHERE LaConditionEventuelle ;"
Set rst = CurrentDb.OpenRecordset(strSQL)
While not rst.EOF
Debug.? rst(0), rst(1), rst(2) ' tous les champs que tu veux
' l'index des champs commence à 0
rst.MoveNext
Wend
Set rst = Nothing
End Sub


Jpmill a écrit :
On 29 sep, 13:23, Eric
Bonsoir,

Tu peux faire quelque chose du genre pour une requête Selection, si mes
souvenirs sont encore bons:

Sur l'évènement clic de ton bouton:

Private Sub Commande0_Click
'Charger la référence Microsft DAO Object Library 3.x
Dim strSQL as String ' stockage de la chaine SQL
Dim qry as DAO.Querydef
strSQL = "SELECT * " _
& "FROM LaTable " _
& "IN """ & CurrentProject.Path & "NomAutreBase.mdb"" " _
& "WHERE LaConditionEventuelle ;"
Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
DoCmd.OpenQuery "tmp" ' Ouverure de la requête
CurrentDb.QueryDefs.Delete "tmp" ' Suppression de la requête
' car recréée à chaque lancement
Set qry = Nothing
End Sub

Jpmill a écrit :

Bonjour voici mon problème :
J'ai 2 bases de donnée Access 2003 dans le même répertoire sur mon PC.
Je veux à partir d'un bouton de commande dans un formulaire , pouvoir
faire une requête SQL sur ma 2e base de données. je ne suis pas sur de
la bonne technique à utilser. J'aimerais avoir le code VBA qu'il faut
utiliser pour que ça fontionne.
Merci


--
A+
Erichttp://www.mpfa.info/
Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Ok est-ce que il est possible de mettre ça dans un genre de recordset
pour pouvoir y faire des "move next" etc....???



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Jpmill
Le #17376331
On 29 sep, 13:56, Jpmill
On 29 sep, 13:23, Eric


> Bonsoir,

> Tu peux faire quelque chose du genre pour une requête Selection, si m es
> souvenirs sont encore bons:

> Sur l'évènement clic de ton bouton:

> Private Sub Commande0_Click
>    'Charger la référence Microsft DAO Object Library 3.x
>    Dim strSQL as String ' stockage de la chaine SQL
>    Dim qry as DAO.Querydef
>    strSQL = "SELECT * " _
>          & "FROM LaTable " _
>          & "IN """ & CurrentProject.Path & "NomAutreBase.mdb "" " _
>          & "WHERE LaConditionEventuelle ;"
>    Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
>    DoCmd.OpenQuery "tmp" ' Ouverure de la requête
>    CurrentDb.QueryDefs.Delete "tmp" ' Suppression de la requête
>                                     ' car recréée à chaque lancement
>    Set qry = Nothing
> End Sub

> Jpmill a écrit :

> > Bonjour voici mon problème :

> > J'ai 2 bases de donnée Access 2003 dans le même répertoire sur mon PC.
> > Je veux à partir d'un bouton de commande dans un formulaire , pouvo ir
> > faire une requête SQL sur ma 2e base de données. je ne suis pas s ur de
> > la bonne technique à utilser. J'aimerais avoir le code VBA qu'il fa ut
> > utiliser pour que ça fontionne.

> > Merci

> --
> A+
> Erichttp://www.mpfa.info/
> Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl =fr

Ok est-ce que il est possible de mettre ça dans un genre de recordset
pour pouvoir y faire des "move next" etc....???



Voici ce que j'ai comme code et ca me retourne toujours 1 :

Private Sub CmdLancerTransfert_Click()


Dim db As Database
Dim rsRSFSelectTransfert As Recordset


Dim strSQL As String ' stockage de la chaine SQL

strSQL = "SELECT * " _
& "FROM RSF " _
& "IN """ & CurrentProject.Path & "Base de données
RSF.mdb"" " _
& " ;"


Set rsRSFSelectTransfert = CurrentDb.OpenRecordset(strSQL)


MsgBox (rsRSFSelectTransfert.RecordCount)


End Sub
Jpmill
Le #17376321
On 29 sep, 13:56, Jpmill
On 29 sep, 13:23, Eric


> Bonsoir,

> Tu peux faire quelque chose du genre pour une requête Selection, si m es
> souvenirs sont encore bons:

> Sur l'évènement clic de ton bouton:

> Private Sub Commande0_Click
>    'Charger la référence Microsft DAO Object Library 3.x
>    Dim strSQL as String ' stockage de la chaine SQL
>    Dim qry as DAO.Querydef
>    strSQL = "SELECT * " _
>          & "FROM LaTable " _
>          & "IN """ & CurrentProject.Path & "NomAutreBase.mdb "" " _
>          & "WHERE LaConditionEventuelle ;"
>    Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
>    DoCmd.OpenQuery "tmp" ' Ouverure de la requête
>    CurrentDb.QueryDefs.Delete "tmp" ' Suppression de la requête
>                                     ' car recréée à chaque lancement
>    Set qry = Nothing
> End Sub

> Jpmill a écrit :

> > Bonjour voici mon problème :

> > J'ai 2 bases de donnée Access 2003 dans le même répertoire sur mon PC.
> > Je veux à partir d'un bouton de commande dans un formulaire , pouvo ir
> > faire une requête SQL sur ma 2e base de données. je ne suis pas s ur de
> > la bonne technique à utilser. J'aimerais avoir le code VBA qu'il fa ut
> > utiliser pour que ça fontionne.

> > Merci

> --
> A+
> Erichttp://www.mpfa.info/
> Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl =fr

Ok est-ce que il est possible de mettre ça dans un genre de recordset
pour pouvoir y faire des "move next" etc....???


Jpmill
Le #17376311
On 29 sep, 13:56, Jpmill
On 29 sep, 13:23, Eric


> Bonsoir,

> Tu peux faire quelque chose du genre pour une requête Selection, si m es
> souvenirs sont encore bons:

> Sur l'évènement clic de ton bouton:

> Private Sub Commande0_Click
>    'Charger la référence Microsft DAO Object Library 3.x
>    Dim strSQL as String ' stockage de la chaine SQL
>    Dim qry as DAO.Querydef
>    strSQL = "SELECT * " _
>          & "FROM LaTable " _
>          & "IN """ & CurrentProject.Path & "NomAutreBase.mdb "" " _
>          & "WHERE LaConditionEventuelle ;"
>    Set qry = CurrentDb.CreateQueryDef("tmp", strSQL)
>    DoCmd.OpenQuery "tmp" ' Ouverure de la requête
>    CurrentDb.QueryDefs.Delete "tmp" ' Suppression de la requête
>                                     ' car recréée à chaque lancement
>    Set qry = Nothing
> End Sub

> Jpmill a écrit :

> > Bonjour voici mon problème :

> > J'ai 2 bases de donnée Access 2003 dans le même répertoire sur mon PC.
> > Je veux à partir d'un bouton de commande dans un formulaire , pouvo ir
> > faire une requête SQL sur ma 2e base de données. je ne suis pas s ur de
> > la bonne technique à utilser. J'aimerais avoir le code VBA qu'il fa ut
> > utiliser pour que ça fontionne.

> > Merci

> --
> A+
> Erichttp://www.mpfa.info/
> Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl =fr

Ok est-ce que il est possible de mettre ça dans un genre de recordset
pour pouvoir y faire des "move next" etc....???



J'ai modifié un peu le code pour utiliser les recordset mais voici que
mon recordcount est toujorus 1 :

Private Sub CmdLancerTransfert_Click()


Dim db As Database
Dim rsRSFSelectTransfert As Recordset


Dim strSQL As String ' stockage de la chaine SQL

strSQL = "SELECT * " _
& "FROM RSF " _
& "IN """ & CurrentProject.Path & "Base de données
RSF.mdb"" " _
& " ;"


Set rsRSFSelectTransfert = CurrentDb.OpenRecordset(strSQL)


MsgBox (rsRSFSelectTransfert.RecordCount)


End Sub
Eric
Le #17386021
Bonsoir,

Au pas de course, pour connaitre le nb d'enregistrements d'un recordset,
il faut, sous réserve qu'il contienne au moins un enregistrement, se
déplacer sur le dernier, ce qui revient à faire parcourir par le système
le jeu d'enregistrements. Pour le parcourir par la suite il faudra se
repositionner sur le 1er ou alors revenir du dernier vers le 1er en
faisant un MovePrevious

Ce qui pourrait s'écrire pour récupérer le nb d'enreg:
If not rst.EOF then
rst.MoveLast
msgbox " nb d'enregistrements : " & rst.recordcount
Else
Set rst= Nothing: Exit Sub
end if
Pour lire tous les enregistrements du dernier au premier:
While not rst.BOF
debug.? rst(1), rst(2) ' c'est un exemple
rst.MovePrevious
Wend
...



Jpmill a écrit :
On 29 sep, 13:56, Jpmill



J'ai modifié un peu le code pour utiliser les recordset mais voici que
mon recordcount est toujorus 1 :





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
chpa
Le #17465431
Bonsoir,
Et si pour faire simple tu te contentait de créer un lien vers les tables de
la 2ème base ?
Tu pourrais ainsi faire autant de requête que tu souhaite sans te prendre la
tête non ?

"Jpmill" news:
Bonjour voici mon problème :


J'ai 2 bases de donnée Access 2003 dans le même répertoire sur mon PC.
Je veux à partir d'un bouton de commande dans un formulaire , pouvoir
faire une requête SQL sur ma 2e base de données. je ne suis pas sur de
la bonne technique à utilser. J'aimerais avoir le code VBA qu'il faut
utiliser pour que ça fontionne.


Merci
Publicité
Poster une réponse
Anonyme