sonia_mgr
Messages postés31Date d'inscriptionmercredi 25 février 2004StatutMembreDernière intervention 1 juillet 2004
-
2 mars 2004 à 16:47
darollinghobbit
Messages postés55Date d'inscriptionmardi 2 mars 2004StatutMembreDernière intervention18 juin 2004
-
11 juin 2004 à 11:51
bonjour..
je voudrai savoir comment peut on stocker le resultat d'une requete SQL pour l'afficher ensuite dans un formulaire..
Je veux savoir aussi s'il est possible d'avoir comme condition de recherche pour la requete (WHERE ....=.....)une variable qui n'est autre que la valeur d'un champs sur un formulaire (et donc une variable non constante)??
darollinghobbit
Messages postés55Date d'inscriptionmardi 2 mars 2004StatutMembreDernière intervention18 juin 20041 2 mars 2004 à 17:09
Bonjour,
Tu peux stocker le résultat d'une requête dans un recordset pour toute utilisation future
Par exemple si tu veux les enregistrements de la table test pour lesquels le champ id est inférieur à 5
Dim rst as ADODB.recordset
Dim sSql as String
sSql = "Select * from test where id < 5"
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.open sSql, currentProject.ActiveConnection, adOpenKeyset, adLockOptimistic
Pour pouvoir boucler sur ce recordset tu n'as qu'à utiliser ceci
Do until rst.EOF
'Affiche les valeurs voulues
msgbox rst(champ1) & " " & rst(champ2), etc...
'Ou
'Les numéros correspondent à l'ordre des colonnes en commençant par 0
msgbox rst(0) & " " & rst(1) & " " etc...
'Passe à l'enregistrement suivant
rst.moveNext
Loop
Si maintenant tu veux dans un formulaire pouvoir utiliser une condition where il te suffit de faire ce genre de chose.
Toujours en utilisant la table test, tu as un formulaire avec un champ texte (txtMax) où tu saisis la valeur max de id
sonia_mgr
Messages postés31Date d'inscriptionmercredi 25 février 2004StatutMembreDernière intervention 1 juillet 2004 3 mars 2004 à 10:05
Merci pour ces explications mais j'ai maintenant un autre probleme.. (c'etai prévisible!!)
j'ai du mal a comprendre la ligne:
rst.open sSql, currentProject.ActiveConnection, adOpenKeyset, adLockOptimistic
Cela me genere une erreur d execution '3001'
Les arguments sont de type incorrect, en dehors des limites autorisées, ou en conflit les uns avec les autres.
Ya peutetre des truc que j ai pas declaré.. J'ai un peu de mal avec les connexion, projet, dataBase....desolee..
sonia_mgr
Messages postés31Date d'inscriptionmercredi 25 février 2004StatutMembreDernière intervention 1 juillet 2004 3 mars 2004 à 13:17
voila:
Private Sub txtCode_Exit(Cancel As Integer)
Dim var As String
Dim rst As ADODB.Recordset
Dim sSql As String
If Me.txtCode <> "" Then
var = Me.txtCode
DoCmd.SetWarnings False sSql "select * from PERSONNE where NPERS '" & var & "' ;"
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open sSql, ActiveConnection, adOpenKeyset, adLockOptimistic
If rst.EOF = False Then
Form_SaisieHI!txtNom = rst(2)
Form_SaisieHI!txtPrenom = rst(3)
Else
MsgBox ("le code personnel &var n'existe pas")
End If
Else
Me.txtNom = ""
Me.txtPrenom = ""
End If
End Sub
On fait une recherche sur le code personnel qui est unique.
On affiche ensuite le nom et le prenom correspondants au code.
J'espere ke ça sera assez clair...
So
nithdabeille
Messages postés6Date d'inscriptionmardi 17 juin 2003StatutMembreDernière intervention11 juin 2004 10 juin 2004 à 17:01
ben moi j'y arrive toujours pas!!au secours c URGENT!!
voici mon code:
Private Sub Commande73_Click()
Dim numor, numdest, sql As String
Dim res As Integer
Dim rst As ADODB.Recordset
numor = Me.CboOr.Value
numdest = Me.CboDest.Value
Set rst = New ADODB.Recordset
sql = "SELECT numplace FROM place WHERE idpaqbt=" & numor & ""
rst.CursorLocation = adUseClient
rst.Open sql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If rst.EOF = False Then
MsgBox (rst(0))
End If
nithdabeille
Messages postés6Date d'inscriptionmardi 17 juin 2003StatutMembreDernière intervention11 juin 2004 11 juin 2004 à 11:47
Voici mon nouveau code:
Private Sub Commande73_Click()
Dim numor, numdestAs integer
dim sql as string
Dim rst As ADODB.Recordset
numor = Me.CboOr.Value
numdest = Me.CboDest.Value
Set rst = New ADODB.Recordset
sql = "SELECT numplace FROM place WHERE idpaqbt=" & numor & ""
rst.CursorLocation = adUseClient
rst.Open sql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If rst.EOF = False Then
MsgBox (rst(0))
End If
End Sub
idpaqbt est bien un entier et j'ai changé le numor en entier.
Mais maintenant il m'affiche:"la méthode 'open' de l'objet"recordset" a echoué!!