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.