cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 2015
-
22 juin 2009 à 08:28
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 2015
-
25 juin 2009 à 20:23
bonjour
j'ai un code pour remplir une progressbar par rapport à une base ACCESS
mais j'ai une erreur sur "bd.open"
le message d'erreur est "erreur de compilation,fonction ou variable attendue"
Private Sub DoRemplir()
bd.ConnectionString = App.Path & "\BD\Film.mdb"
Sql = "SELECT * FROM Film WHERE Code ORDER BY code_film ASC;"
Set Rs = bd.Open(Sql, adOpenDynamic, adLockOptimistic)
bd.Open
MaxiBar = Rs.RecordCount
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 22 juin 2009 à 19:58
Qu'est-ce que tu cherches à charger ?
Sinon le code corrigé est là :
' --------------------------METTRE CECI DANS UN MODULE -----------------------------
Option Explicit
Public Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Dim db As ADODB.Connection
Dim rs As ADODB.Recordset, SQL As String
Public Function OpenDB() As Boolean
'Retourne TRUE si erreur, sinon FALSE.
db.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & App.Path & "\BD\Film.mdb;Uid=Admin;Pwd=;"
On Error Resume Next
db.Open If Err Then OpenDB True 'Else OpenDB False
On Error GoTo 0
End Function
Public Function CloseDB() As Boolean
'Retourne TRUE si erreur, sinon FALSE.
On Error Resume Next
db.Close If Err Then CloseDB True 'Else OpenDB False
On Error GoTo 0
End Sub
'-----------------------------------------------------------------------------------
Option Explicit
Private Sub DoRemplir()
If OpenDB Then
MsgBox "Erreur lors de l'ouverture de la base de données ...", vbCritical, "Erreur"
Exit Sub
End If
SQL = "SELECT * FROM Film WHERE Code ORDER BY code_film ASC;"
Set rs = db.Execute(SQL)
MaxiBar = rs.RecordCount
rs.Close
If CloseDB Then MsgBox "Erreur lors de la fermeture de la base de données ...", vbExclamation, "Erreur"
TailleIncrement = 196 / MaxiBar
Bar.Width = 0
Dim Remplir As Integer
For Remplir = 1 To MaxiBar
LblNotif.Caption = " Chargement: " & Remplir & "/" & MaxiBar & "."
Bar.Width = Bar.Width + TailleIncrement
Sleep 500
Next Remplir
End Sub
, ----
[../code.aspx?ID=41455 Syntax color by Renfield]
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 22 juin 2009 à 20:01
J'avais oublié l'explication : dimensionne toutes tes variables, et utilise les fonctions de ADODB correctement (db.Open ouvre la base, mais n'exécute pas un query, par exemple)
Et un autre oubli de ma part, le début du code du formulaire :
Option Explicit
Private Sub DoRemplir()
Dim MaxiBar As Integer
If OpenDB Then
MsgBox "Erreur lors de l'ouverture de la base de données ...", vbCritical, "Erreur"
Exit Sub
End If , ----
[../code.aspx?ID=41455 Syntax color by Renfield]
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 22 juin 2009 à 21:19
bonsoir
merci pour ta réponse,mais j'ai une erreur 91
"variable objet ou variable bloc with non définie" sur la ligne en rouge
Public Function OpenDB() As Boolean
'Retourne TRUE si erreur, sinon FALSE.
db.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & App.Path & "\BD\Film.mdb;Uid=Admin;Pwd=;"
On Error Resume Next
db.Open If Err Then OpenDB True 'Else OpenDB False
On Error GoTo 0
End Function
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 22 juin 2009 à 21:49
D'abord il faut que tu ajoutes la référence Microsoft ActiveX Data Object 2.8 Library.
Et mon code n'était pas bon, là ça devrait fonctionner :
Public Function OpenDB() As Boolean
'Retourne TRUE si erreur, sinon FALSE.
CloseDB
Set db = New ADODB.Connection
db.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & App.Path & "\BD\Film.mdb;Uid=Admin;Pwd=;"
On Error Resume Next
db.Open If Err Then OpenDB True 'Else OpenDB False
On Error GoTo 0
End Function
, ----
[../code.aspx?ID=41455 Syntax color by Renfield]
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 23 juin 2009 à 03:43
bonjour
j'ai toujours une erreur sur "variable objet ou variable bloc with non définie",j'ai mis la référence Microsoft ActiveX Data Object 2.8 Library
Set rs = db.Execute(SQL)
bonne journée
petchy
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 24 juin 2009 à 08:55
Là ça doit être bon :
'------------------------------- DANS LE MODULE -------------------------------
Option Explicit
Public Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Public db As ADODB.Connection
Public Function OpenDB() As Boolean
'Retourne TRUE si erreur, sinon FALSE.
CloseDB
Set db = New ADODB.Connection
db.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & App.Path & "\BD\Film.mdb;Uid=Admin;Pwd=;"
On Error Resume Next
db.Open If Err Then OpenDB True 'Else OpenDB False
On Error GoTo 0
End Function
Public Function CloseDB() As Boolean
'Retourne TRUE si erreur, sinon FALSE.
On Error Resume Next
db.Close If Err Then CloseDB True 'Else OpenDB False
On Error GoTo 0
End Sub
'------------------------------------------------------------------------------
Option Explicit
Dim rs As ADODB.Recordset, SQL As String
Private Sub DoRemplir()
If OpenDB Then
MsgBox "Erreur lors de l'ouverture de la base de données ...", vbCritical, "Erreur"
Exit Sub
End If
Dim MaxiBar As Integer
SQL = "SELECT * FROM Film WHERE Code ORDER BY code_film ASC;"
Set rs = db.Execute(SQL)
MaxiBar = rs.RecordCount
rs.Close
If CloseDB Then MsgBox "Erreur lors de la fermeture de la base de données ...", vbExclamation, "Erreur"
Dim TailleIncrement As Integer
TailleIncrement = 196 / MaxiBar
Bar.Width = 0
Dim Remplir As Integer
For Remplir = 1 To MaxiBar
LblNotif.Caption = " Chargement: " & Remplir & "/" & MaxiBar & "."
Bar.Width = Bar.Width + TailleIncrement
Sleep 500
Next Remplir
End Sub
, ----
[../code.aspx?ID=41455 Syntax color by Renfield]
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 24 juin 2009 à 19:07
bonsoir
maintennant j'ai une erreur
"pilote ODBC microsoft trop peu de parametres 1 attendu"
et il me surligne Set Rs = db.Execute(SQL)
je ne comprends pas
merci pour ton aide
petchy
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 24 juin 2009 à 20:11
Re
je viens de corriger l'erreur,et j'ai mis
SQL = "SELECT * FROM Film WHERE code_film ORDER BY code_film ASC;"
mais la barre de défilement ne se remplis pas
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 25 juin 2009 à 03:46
bonjour
toujours pareil,la barre de défilement ne se remplis pas
en fait c'est au lancement du programme faire une progressBar et faire défiler le nombre d'enregistrement .
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 25 juin 2009 à 13:38
en fait je voulais dire qu'au lancement du prog faire défilé la speudo barre de progression (MaxiBar),
mais c'est la le probleme j'ai plus d'erreur,mais la barre de défilement ne se remplis pas
petchy