Recordset

Omega15 Messages postés 55 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 7 septembre 2009 - 28 juil. 2005 à 14:58
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 - 28 juil. 2005 à 15:53
Bonjour,

voici mon probleme,

je travail avec 2 base bdtrav et bdsav, sui ont exactement les mêmes champs mais pas les mêmes valeurs.

Et selon la base que je doit ouvrir j'execute ma requete.

EXEMPLE:
public BdTrav as connection
Public BdSav as connection
dim adobase as recordset
If Base="TRAVAUX" then
set adobase=BdTrav.execute ("SELECT * ....... ;")
else
set adobase=BdSav.execute ("SELECT ........;")
endif

N'y aurais t-il pas une solution pour n'avoir qu'une seule requete avec, a la place de BdTrav et BdSav, une variable "BASE" où l'on stock justement la base a ouvrir.

comme par exemple :
dim Base as string
Base ="BdTrav"
set adobase = ' " & Base & " ' .execute (".......;")
ou alors
set adobase = " & Base & " .execute ("... ;")
ou quelque chose d'autre
.......

Tout ca pour ne pas avoir a faire de teste et ne faire qu'une requete.

merci a ceux qui pourront m'aider.

11 réponses

Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 9
28 juil. 2005 à 15:01
Salut,

B'hein vu qu'il
faut ouvrir une connexion vers chaque base, je vois mal comment tu peux
faire une unique connexion qui ouvre en même temps les deux base ...

++

Zlub
0
Omega15 Messages postés 55 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 7 septembre 2009
28 juil. 2005 à 15:05
Je ne veut pas ouvrir les 2 base en meme temps, l'une ou l'autre selon la variable.

Il n'y aurais pas une astuce avec les simple cote ou les guillemets, le "&" , n'importe quoi.
0
cs_toods Messages postés 26 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 29 juillet 2005
28 juil. 2005 à 15:05
je suis d'accord avec Zlub. Si tu as deux bases différentes, tu dois utiliser 2 connexions différentes.
Mais si il y a une autre solution, ca m'intéresse aussi.
Merci

Plus tu vas moins vite, moins tu vas plus loin
0
cs_toods Messages postés 26 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 29 juillet 2005
28 juil. 2005 à 15:10
Tu peux faire ceci:

Set gconBD = New ADODB.Connection
With gconBD
.ConnectionString = "Provider=SQLOLEDB.1;Data Source=" & nomServeur& ";User ID=" & nomId & ";Initial Catalog=" & nomBase
.Open
End With
Et là, tu as ouvert une connexion sur le serveur "nomServeur" et sur la base "nomBase"
avec l'identifiant de connexion "nomId "

si ca peux t'aider
après, tu utilises toujours set connexion
gconBD.Execut ("ta requete SQL")

Plus tu vas moins vite, moins tu vas plus loin
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_toods Messages postés 26 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 29 juillet 2005
28 juil. 2005 à 15:11
si ca peux t'aider
après, tu utilises toujours cette connexion
gconBD.execute("ta requete SQL")

dsl pour les fautes de frappe
Plus tu vas moins vite, moins tu vas plus loin
0
Omega15 Messages postés 55 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 7 septembre 2009
28 juil. 2005 à 15:13
et si je travail en local sur mon poste,
je met quoi en "NomServeur" et "NomBase" ?
0
cs_toods Messages postés 26 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 29 juillet 2005
28 juil. 2005 à 15:21
ta base est en local ? C'est quoi comme BD que tu utilises ?

Plus tu vas moins vite, moins tu vas plus loin
0
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 9
28 juil. 2005 à 15:23
Salut,

en local dans NomServeur tu mets de chemin d'accés à la base
et dans NomBase tu mets le nom de ta base ex : mabase.mdb

++

Zlub
0
Omega15 Messages postés 55 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 7 septembre 2009
28 juil. 2005 à 15:24
une base access qui est sur un lecteur reseau (Q:)
0
Omega15 Messages postés 55 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 7 septembre 2009
28 juil. 2005 à 15:52
Bon laissez tomber.

j'ai trouvé une solution de secours.

j'utilise une fonction

Public Function Requete(RRequete As String)
If BdBase = "BdTrav" Then
Set adoR = BdTrav.Execute(RRequete)
Else
Set adoR = BdSav.Execute(RRequete)
End If
End Function

et dans mon code je fait

Requete("SELECT * FROM Salarie ;")
MaValeur =adoR("nom")

Ca fonctionne, mais c'est dommage de pas avoir reussit autrement.

merci quand meme à tous.
0
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 9
28 juil. 2005 à 15:53
Salut,

B'hein vi il me semblait bien que tu avais la reponse dans ta question...

++

Zlub
0