begin process at 2010 02 09 22:00:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

General

 > 

erreur sur "bd.open"


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

erreur sur "bd.open"

lundi 22 juin 2009 à 08:28:40 | erreur sur "bd.open"

petchy

Membre Club

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
     
       bd.Close
    
     TailleIncrement = 196 / MaxiBar
    
     Bar.Width = 0
    
     For Remplir = 1 To MaxiBar
         
          LblNotif.Caption = " Chargement: " & Remplir & "/" & MaxiBar & "."
    
          Bar.Width = Bar.Width + TailleIncrement
          
        
          For Pause = 0 To 300000 Step 1
          Next
             Next Remplir
    End Sub
merci
petchy

lundi 22 juin 2009 à 19:58:53 | Re : erreur sur "bd.open"

ghuysmans99

Membre Club
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

Syntax color by Renfield
Signature.gif
lundi 22 juin 2009 à 20:01:24 | Re : erreur sur "bd.open"

ghuysmans99

Membre Club
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
Syntax color by Renfield
Signature.gif
lundi 22 juin 2009 à 21:19:49 | Re : erreur sur "bd.open"

petchy

Membre Club
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

@ plus
petchy
lundi 22 juin 2009 à 21:49:10 | Re : erreur sur "bd.open"

ghuysmans99

Membre Club
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

Syntax color by Renfield
Signature.gif
mardi 23 juin 2009 à 03:43:57 | Re : erreur sur "bd.open"

petchy

Membre Club
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


mercredi 24 juin 2009 à 08:55:09 | Re : erreur sur "bd.open"

ghuysmans99

Membre Club
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
Syntax color by Renfield
Signature.gif
mercredi 24 juin 2009 à 19:07:25 | Re : erreur sur "bd.open"

petchy

Membre Club
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
mercredi 24 juin 2009 à 19:28:57 | Re : erreur sur "bd.open"

ghuysmans99

Membre Club
Il sert à quoi, le WHERE Code ?
Signature.gif
mercredi 24 juin 2009 à 20:11:45 | Re : erreur sur "bd.open"

petchy

Membre Club
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


1 2

Cette discussion est classée dans : bd, erreur, remplir, open, maxibar


Répondre à ce message

Sujets en rapport avec ce message

VBA & BD ACCESS (Un formulaie ds 1 mdB bogué) [ par MIX78 ] Bonjour à tous !C'est la premiere fois que je demande conseil sur internet car je suis dans une situation qui me dépasse totalement.Bon, je m'explique Gestion Erreur Connexion BD [ par JRN ] Bonjour,Lorsqu'une erreur se produit lors d'une mauvaise connexion, un message d'erreur me dit : Erreur Automation (erreur 440)J'aimerais que se messa erreur 20599 cannot open sql serveur [ par zobelix ] Help !!! Pb avec VB6 et Crystal (PS2SODBC). Il est impossible de se connecter a SQL. le pb est connu chez crystal malheureusement une fois le fix pass Erreur d'éxecution '3464' [ par Feeds ] Salut tt le mondeLe message d'erreur renvoyé : Erreur d'éxecution '3464' Type de données incompatible dans l'expression du critèreCe msg survient lo Comment savoir si BD déjà ouverte par autre utilisateur [ par PROGRAMMIX ] J'ai réalisé un programme qui permet la mise à jour d'une base de données de type Access mise sur un serveur.L'application fonctionne correctement et EMail = formulaire à remplir + validation ==> BD [ par BSide ] Je souhaite pouvoir envoyer des emails-formulaires à des correspondants.Une fois remplis, ceux-ci seraient automatiquement exploités par une appli fon erreur 8005 sur vba. "port already open" [ par Ptitdoudou ] Bonjour,J'ai un soucis au niveau de la compilation d'un de mes programmes sur VBA.J'utilise une liaison RS232 et lorsue je compile mon programme, j'ai Erreur Automation à l'exécution [ par vivi62 ] BonjourJ'ai un projet VB dans lequel j'ai un controle treeview et une connexion ADO à un BD.Le projet tourne très bien dans l'environnement visual bas Erreur d'installation ADO , ADODB.Connection avec Base de données Access [ par JMF27 ] ************************************Erreur d'installation ADO , ADODB.Connection avec Base de données Access************************************J'ai gestion erreur reseau ou dique [ par fahdboujadi ] Bonjour tt le monde . voila sur une question que jé deja posé sur le form "comment gérer une erreur reseau" j'ai recu une reponse bien favorable. Merc


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales