Pb Set rs = DB.OpenRecordset(Sql, dbOpenDynaset)

Résolu
biddal Messages postés 45 Date d'inscription jeudi 9 septembre 2004 Statut Membre Dernière intervention 8 août 2011 - 7 déc. 2005 à 13:58
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 9 déc. 2005 à 04:38
Voila mon code, et j'ai une erreur d'execution ICI et je ne vois pas ce que c'est.
' -----
' Form1
' -----
'
Option Explicit
'
Public Typ As Long
'
'
Private Sub Form_Load()
Cmd(0).Caption = "Jeux"
Cmd(1).Caption = "DivX"
Cmd(2).Caption = "Logiciels"
End Sub
'
' groupe de contrôles : 3 boutons "Cmd"
Private Sub Cmd_Click(Index As Integer) 'index = 0 ou 1 ou 2
Typ = Index + 1
MsgBox CStr(Typ), 32


'Menu.Hide
'Liste.Show
Liste.Show
End Sub

' -----
' Form2
' -----
'
Option Explicit
'
'
Public Sub Form_Load()


Dim rs As Recordset
Dim Sql As String


' ouvre la base
On Error GoTo BaseNonTrouvee
Set DB = OpenDatabase(sPathBase, True, False, ";pwd=" & sPassBase)
On Error GoTo 0 '*FGE*


' execute la requête
Sql = "SELECT Titre " & _
"FROM CD_ROM " & _
"WHERE [Type] = '" & Menu.Typ & "'"


Set rs = DB.OpenRecordset(Sql, dbOpenDynaset)


' récupère le 1er résultat. à toi de comprendre comment gérer ta boucle
Dim sResult As String
sResult = rs("Titre")
MsgBox sResult, 32


' détruit l'instance rs
Set rs = Nothing


' ferme et détruit l'instance base
DB.Close
Set DB = Nothing


Exit Sub


BaseNonTrouvee:
Err.Clear
MsgBox "Base Introuvable", 32
End Sub


Private Sub Image1_Click()
Liste.Hide
Menu.Show
End Sub

et mon module

' --------
' Mod_Vars
' --------
'
' dans ce module : tes déclarations publiques.
' çà sera bien plus pratique pour te relire
'
Option Explicit
'
' * activer microsoft DAO3.6 dans Projet-references *
'
Public DB As Database
'
Public Const sPathBase As String = "CD.mdb" 'chemin base
Public Const sPassBase As String = "" 'password base

6 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 déc. 2005 à 19:50
- Une variable ne peut pas être déclarée en Public dans une Form
- le caractère _ (comme le %) sont des symboles réservés à SQL, d'où l'utilité des [ et ]
- Si [Type] est numérique, il ne faut pas mettre de ' pour encadrer la donnée.
Tu n'as pas dû beaucoup chercher sur ce site, on répète ces phrases à longueur de journée !

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
3
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
9 déc. 2005 à 04:38
salut.

vi, méprise bien identifiée^^.

donc ok pour les crochets à [CD_ROM]

++ PCPT [AFCK]
3
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
7 déc. 2005 à 14:18
topic en doublon ;)
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 déc. 2005 à 19:45
Salut biddal
Jamais tu lis les réponses à tes posts ? http://vbfrance.com/forum.v2.aspx?ID=614613
Renfiled t'a dit pourquoi.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
7 déc. 2005 à 20:15
Jack -> slt. pour la variable, autant la déclarer dans le module,
mais je ne vois pas en quoi c'est impossible sur une Form (mis à part
restriction VBA, donc inconnue pour ma part)

et pour le "_", je ne vois pas le problème puisque sql est une string.



je prend un peu la défense de biddal, voir son post d'origine...

++
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 déc. 2005 à 23:12
Salut
Parce que je te dis que _ et % sont des caractères interprétés par SQL comme des jokers.
_ peut remplacer un seul caractère, équivalent au ? sous DOS
% remplace un groupe de caractères, comme * sous DOS
C'est comme ça.
Donc, si tu utilises _ ou % dans ta chaine, tu risque d'avoir des surprises !


En relisant ton code, je comprends la méprise.


Je ne te parle pas des _ en fin de phrase de la syntaxe VB, mais du _ qui se trouve dans le nom de ta table CD_ROM --> [CD_ROM]

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0