Selection de base de données - VB/VBA/VBS - Programmation
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 
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?
Marsh Posté le 17-08-2002 à 13:55:46
Left(txtHaut.Text, lenString - 2) 
c ca ton pb 
 
c koi lenstring?
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 
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é
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
Marsh Posté le 17-08-2002 à 19:35:23
donc ta chaine Requete1 ne peu pas etre concaténée entierement?
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?
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
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  
 
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)
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.