{Access} ouvrir un recordset
Résolu
sliverpopop
Messages postés
924
Date d'inscription
Statut
Membre
Dernière intervention
-
sliverpopop Messages postés 924 Date d'inscription Statut Membre Dernière intervention -
sliverpopop Messages postés 924 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un petit problème concernant l'ouverture d'un recordset et l'affichage d'un de ses champs dans un formulaire.
Voici mon code :
Private Sub Commande14_Click()
Dim rs As recordset
Dim sqlstring As String
Dim str_test_type As String
Dim str_ID_Test As String
str_ID_Test = TestID_form.Value
sqlstring = "SELECT [Spec_test].Test_id, [Spec_test].Test_type AS T_type, [Spec_test].Instruction, [Spec_test].Waited_value, " & _
"[Spec_test].File_name, [Spec_test].Record_field, [Spec_test].Description " & _
"FROM [Spec_test] WHERE [Spec_test].Test_id = """ & str_ID_Test & """ ;"
Set rs = CurrentDb.OpenRecordset(sqlstring)
str_test_type = rs!T_type
MsgBox (str_test_type)
'[Forms]![Formulaire1]![Test_type] = str_test_type
Test_ID_form correspond correspond à une liste déroulante dans mon formulaire1.
J'ai déjà eu besoin d'un recordset, je m'en suis déjà servi, aucun problème, et cette fois, daube des daubes, il me dit ' type de données incompatibles dans l'expression du critère ' et me surligne en jaune cette ligne :
Set rs = CurrentDb.OpenRecordset(sqlstring)
Normalement il n'y a pas de problème de synthaxe dans l'expression de sqlstring , il y a juste une petite différence par rapport à mon code qui était bon, c'est dans :
Dim rs As recordset,
dans mon autre code, recordset a une majuscule donc c'est écrit Recordset, mais là impossible de l'écrire avec une majuscule,il me la change tout seul en minuscule.
Siouplait les CCMistes, aidez-moi, je ne comprend pas ce qui se passe (j'y suis depuis vendredi aprèm', demain, si j'y arrives toujours pas, je me fous la tête dans le four....).
Merci d'avance
SliverPopop
J'ai un petit problème concernant l'ouverture d'un recordset et l'affichage d'un de ses champs dans un formulaire.
Voici mon code :
Private Sub Commande14_Click()
Dim rs As recordset
Dim sqlstring As String
Dim str_test_type As String
Dim str_ID_Test As String
str_ID_Test = TestID_form.Value
sqlstring = "SELECT [Spec_test].Test_id, [Spec_test].Test_type AS T_type, [Spec_test].Instruction, [Spec_test].Waited_value, " & _
"[Spec_test].File_name, [Spec_test].Record_field, [Spec_test].Description " & _
"FROM [Spec_test] WHERE [Spec_test].Test_id = """ & str_ID_Test & """ ;"
Set rs = CurrentDb.OpenRecordset(sqlstring)
str_test_type = rs!T_type
MsgBox (str_test_type)
'[Forms]![Formulaire1]![Test_type] = str_test_type
Test_ID_form correspond correspond à une liste déroulante dans mon formulaire1.
J'ai déjà eu besoin d'un recordset, je m'en suis déjà servi, aucun problème, et cette fois, daube des daubes, il me dit ' type de données incompatibles dans l'expression du critère ' et me surligne en jaune cette ligne :
Set rs = CurrentDb.OpenRecordset(sqlstring)
Normalement il n'y a pas de problème de synthaxe dans l'expression de sqlstring , il y a juste une petite différence par rapport à mon code qui était bon, c'est dans :
Dim rs As recordset,
dans mon autre code, recordset a une majuscule donc c'est écrit Recordset, mais là impossible de l'écrire avec une majuscule,il me la change tout seul en minuscule.
Siouplait les CCMistes, aidez-moi, je ne comprend pas ce qui se passe (j'y suis depuis vendredi aprèm', demain, si j'y arrives toujours pas, je me fous la tête dans le four....).
Merci d'avance
SliverPopop
A voir également:
- {Access} ouvrir un recordset
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Ouvrir un fichier .dat - Guide
- Comment ouvrir un fichier docx ? - Guide
- Comment ouvrir un fichier 7z - Guide
4 réponses
Si je puis me permettre:
1) n'utilisez pas Currentdb mais putôt :
Dim myDb as DAO.Database
Set myDb = CurrentDb
'votre code ...
Set myDb = Nothing
2) utilisez strsqlstring plutôt que sqlstring. Il FAUT utiliser les conventions synthaxiques, elles sont et seront utiles aux développeurs qui passeront derrière vous.
3) dans la constructio suivante :
sqlstring = "SELECT [Spec_test].Test_id, [Spec_test].Test_type AS T_type, [Spec_test].Instruction, [Spec_test].Waited_value, " & _
"[Spec_test].File_name, [Spec_test].Record_field, [Spec_test].Description " & _
"FROM [Spec_test] WHERE [Spec_test].Test_id = """ & str_ID_Test & """ ;"
Il vaut mieux pour faciler la lecture écrire ceci, car vous n'utilisez qu'une seule table :
sqlstring = "SELECT Test_id, Test_type AS T_type, Instruction, Waited_value, " & _
"File_name, Record_field, Description " & _
"FROM [Spec_test] WHERE Test_id = " & str_ID_Test & " ;"
4) Vérifiez dans le débugueur de VBA votre strSqlString, ainsi vous pourriez voir que vous cherche par exemple le test_id "53" plutôt que le 53 ;-)
1) n'utilisez pas Currentdb mais putôt :
Dim myDb as DAO.Database
Set myDb = CurrentDb
'votre code ...
Set myDb = Nothing
2) utilisez strsqlstring plutôt que sqlstring. Il FAUT utiliser les conventions synthaxiques, elles sont et seront utiles aux développeurs qui passeront derrière vous.
3) dans la constructio suivante :
sqlstring = "SELECT [Spec_test].Test_id, [Spec_test].Test_type AS T_type, [Spec_test].Instruction, [Spec_test].Waited_value, " & _
"[Spec_test].File_name, [Spec_test].Record_field, [Spec_test].Description " & _
"FROM [Spec_test] WHERE [Spec_test].Test_id = """ & str_ID_Test & """ ;"
Il vaut mieux pour faciler la lecture écrire ceci, car vous n'utilisez qu'une seule table :
sqlstring = "SELECT Test_id, Test_type AS T_type, Instruction, Waited_value, " & _
"File_name, Record_field, Description " & _
"FROM [Spec_test] WHERE Test_id = " & str_ID_Test & " ;"
4) Vérifiez dans le débugueur de VBA votre strSqlString, ainsi vous pourriez voir que vous cherche par exemple le test_id "53" plutôt que le 53 ;-)
ben oui forcément, tu dois enlever les quotes dans ton stringsql :
WHERE [Spec_test].Test_id = """ & str_ID_Test & """ ;" doit être :
WHERE [Spec_test].Test_id = " & str_ID_Test & " ;"
WHERE [Spec_test].Test_id = """ & str_ID_Test & """ ;" doit être :
WHERE [Spec_test].Test_id = " & str_ID_Test & " ;"
En effet cela fonctionne, et je ne comprends pas pourquoi puisque dans mon code précédent (et j'ai revérifié), j'ai bien écrit """ & str_ID_Test & """.
Mais bon, l'important c'est que cela fonctionne.
J'ai une autre petite question, quand la valeur de str_test_type est la zone de texte de mon formulaire, est-il possible de faire en sorte que, lorsque je modifie mon champ de texte, cela modifie également ma table ?
Mais bon, l'important c'est que cela fonctionne.
J'ai une autre petite question, quand la valeur de str_test_type est la zone de texte de mon formulaire, est-il possible de faire en sorte que, lorsque je modifie mon champ de texte, cela modifie également ma table ?
Cela fonctionne peut-être parce que ce champ clé est en alphanumérique ? à vérifier car pas conseiller
Pour répondre à la question, la réponse est oui, vous prenez l'Event OnChange du contrôle mais je déconseillerai cela fortement. J'ai développé une bonne centaine de bdd access et j'ai essayé ce genre de chose ... trop lourd vraiment. Essayez de voir comment contourner la chose.
Pour répondre à la question, la réponse est oui, vous prenez l'Event OnChange du contrôle mais je déconseillerai cela fortement. J'ai développé une bonne centaine de bdd access et j'ai essayé ce genre de chose ... trop lourd vraiment. Essayez de voir comment contourner la chose.