Selection de base de données

Selection de base de données - VB/VBA/VBS - Programmation

Marsh Posté le 16-08-2002 à 09:04:38    

J'aimerais selectionnez une base de données en fonction de  l'entrée d'une combo box. Or on est obligé de retaper tout le code des requétes a chaque fois que l'on veut changer  de tables. Et j'ai 50 tables. Existe til un moyen de changer juste le la table. je m'explique:
voila le code de mes requétes:
 
 requete1 = "SELECT Cuve7.Hauteur, Cuve7.Volume"
 requete1 = requete1 & " FROM Cuve7 "
 requete1 = requete1 & " WHERE Cuve7.Hauteur= '" & Left(txtHaut.Text, lenString - 2) & "'"
 
J'aimerais savoir comment faire pour changer  le nom "cuve 7" en fonction du nom qui se trouve dans la combo box.  
cuve 7 fait partie des noms rentrées dans la combo box en question
 
Merci d'avance.

Reply

Marsh Posté le 16-08-2002 à 09:04:38   

Reply

Marsh Posté le 17-08-2002 à 09:28:46    

Aidez moi SVP

Reply

Marsh Posté le 17-08-2002 à 11:57:12    

dim sNomTable as string
sNomTable="Toto"
requete1 = "SELECT " & sNomTable & ".Hauteur, " & sNomTable & ".Volume"  
requete1 = requete1 & " FROM " & sNomTable
requete1 = requete1 & " WHERE "& sNomTable & ".Hauteur= '" & Left(txtHaut.Text, lenString - 2) & "'"
 
essaye com ca si g ben compris ta kestion

Reply

Marsh Posté le 17-08-2002 à 11:58:45    

ds sNomTable tu pourra entrer le nom contenu ds ta combo

Reply

Marsh Posté le 17-08-2002 à 13:18:13    

Merci c ca . je vais essayer

Reply

Marsh Posté le 17-08-2002 à 13:20:53    

ca marche pas il me met la ligne de commande en rouge en me mettant une erreur du style : Expected: Ene of testament, tout en me surlignant en jaune '.hauteur'
 
Tu vois ce qui va pas?

Reply

Marsh Posté le 17-08-2002 à 13:55:46    

Left(txtHaut.Text, lenString - 2)
c ca ton pb
 
c koi lenstring?

Reply

Marsh Posté le 17-08-2002 à 19:27:13    

non lenstring me donne le nombre de caractére de la chaine.
Ca bloque  pas la
ca bloque au niveau de "select ...  .hauteur". C sur le  .hauteur puis sur le .volume que ca bloque. je sais pas pourquoi

Reply

Marsh Posté le 17-08-2002 à 19:32:00    

la chaine de caractère Requete1 passe ds VB ou c juste kan tu l'execute ke ca va pas, si c ca c ke les champ hauteur et volume ne sot pas ds la table spécifié

Reply

Marsh Posté le 17-08-2002 à 19:32:40    

C'est dans VB que ca foire

Reply

Marsh Posté le 17-08-2002 à 19:32:40   

Reply

Marsh Posté le 17-08-2002 à 19:34:07    

sinon met [  en début et ] fin de chaque nom de champ (ex : table.[Hauteur] chui po sur ke ca change gd choz

Reply

Marsh Posté le 17-08-2002 à 19:34:36    

donne moi le message exact ke tu as + le code d'erreur

Reply

Marsh Posté le 17-08-2002 à 19:35:23    

donc ta chaine Requete1 ne peu pas etre concaténée entierement?

Reply

Marsh Posté le 17-08-2002 à 19:41:15    

maintenant j'ai le message suivant:type declaration caracter does not match declared data type.
 
Ca veut dire quoi?

Reply

Marsh Posté le 17-08-2002 à 19:42:30    

Voici le code:
 
Private Sub cmdCalcul_Click()
 
Dim requete1, requete2 As String       ' Variable caractère pour la requette SQL
Dim strConnection As String  ' Variable pour l'ouverture de la base
Dim resultat1, resultat2 As Recordset   ' Résultat prendra la valeur de la requette "Recordset" "Set resultat = base.OpenRecordset(requete)"
Dim base As Database        ' variable qui récupère la base de donnée a son ouverture par strConnection "Set base = OpenDatabase(strConnection)"
Dim Dataname As String
 
' Ouverture de la base
strConnection = "C:\Epalement 97.mdb"
 
 
 
'Calcul de la cuve 7'
 
lenString = Len(txtHaut.Text)
Dataname = Cuve.Text
 
Select Case lenString
Case 1
' Requette SQL générée dans ACCESS
 requete1 = "SELECT" & Dataname&.Hauteur & Dataname&.Volume
 requete1 = requete1 & " FROM" & Dataname
 requete1 = requete1 & " WHERE" & Dataname & .Hauteur = txtHaut.Text
 
Set base = OpenDatabase(strConnection)
 
' Résultat prend la valeur de la requette
Set resultat1 = base.OpenRecordset(requete1)
 
v = resultat1.Fields(1).Value

Reply

Marsh Posté le 18-08-2002 à 12:30:28    

requete1 = "SELECT" & Dataname&.Hauteur & Dataname&.Volume  
requete1 = requete1 & " FROM" & Dataname  
requete1 = requete1 & " WHERE" & Dataname & .Hauteur = txtHaut.Text  
 
->
c mieux avec des guillemets et faut pas coller le & !
t'as aussi oublié un espace apres le select, le from & le where ainsi ke des virgules, la requete ne peu marcher ds ce ka
essaye comme ca
 
requete1 = "SELECT " & Dataname & ".Hauteur," & Dataname & ".Volume"
requete1 = requete1 & " FROM " & Dataname  
requete1 = requete1 & " WHERE " & Dataname & ".Hauteur=" & txtHaut.Text

 

Reply

Marsh Posté le 20-08-2002 à 21:07:15    

met ca ds un nouveau projet, au form load par ex
 
Dim sNomTable As String
sNomTable = "Toto"
requete1 = "SELECT " & sNomTable & ".Hauteur, " & sNomTable & ".Volume"
requete1 = requete1 & " FROM " & sNomTable
requete1 = requete1 & " WHERE " & sNomTable & ".Hauteur='" & Left(txtHaut.Text, Len(txtHaut.Text) - 2) & "'"
MsgBox requete1
 
si le contenu de requete1 s'affiche c bon
(moi ca marche)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed