Pb avec l' execution du requête

Résolu
cs_luz
Messages postés
29
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
12 février 2013
- 28 sept. 2006 à 08:14
cs_luz
Messages postés
29
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
12 février 2013
- 28 sept. 2006 à 16:11
Bonjours,


Je voudrais executer un requête mise à jour dans une base access, mais j' ais quelques problème
voici le code que j' ais sur un bouton.


Option Explicit
Dim db As Database
Dim mabase As String
Dim sql As String


________________________________________________________________________________________


Private Sub Command1_Click()
' On renseigne la variable mabase
mabase = "c:\sia.mdb"
'Pour un UPDATE :
    ' Connection à la base
    Set db = DBEngine.Workspaces(0).OpenDatabase("mabase")
    ' Assignation de la requète    sql "UPDATE quincaillerie INNER JOIN [saisie commandes] ON quincaillerie.RefArt [saisie commandes].RefArt SET quincaillerie.QuantStock = [quincaillerie]![QuantStock]-[saisie commandes]![UnitéReservé];"
    ' Exécution de la requète
    db.Execute sql
    ' Fermeture de la base
    db.Close
   
End Sub




mais quand je veux l' executer j' ais: Database en surbrillance


et le message suivant:




Erreur de compilation:


Type défini par l'utilisateur non défini

5 réponses

Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
28 sept. 2006 à 09:35
d'accord avec Molenn. le nom complet est : "Microsoft DAO 3.51 Object Library"

Pourquoi mettre tes 'Dim' à l'exterieur de ta procédure ?

à noter aussi qu'il faut ôter les guillemets :
Set db = OpenDatabase("mabase")

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
Molenn
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
7
28 sept. 2006 à 09:28
Tu es en VBA 6, il faut donc que tu rajoutes en référence le type de base de données. Et comme tu utilises une syntaxe DAO, dans ton projet, il faut que tu rajoutes la référence DAO3.51 ou 3.6 suivant ce que tu as à ta disposition.


 


Molenn
0
cs_luz
Messages postés
29
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
12 février 2013

28 sept. 2006 à 15:05
J' ais bien suivi vos instruction, je pense car il y a un pb pour ouvir la base
j' ais: en surbrillance
Set db = DBEngine.Workspaces(0).OpenDatabase(mabase)
et le message suivant:


Erreur d'éxecution '3055':
Nom de fichier incorrect

Option Explicit
Dim db As DAO.Connection
Dim sql As String
Dim mabase As String
________________________________________________________________________________
Private Sub Command1_Click()
' On renseigne la variable mabase
mabase = "Provider=Microsoft DAO 3.51 Object Library;Data Source= c:\sia.mdb"
'Pour un UPDATE :
    ' Connection à la base
    Set db = DBEngine.Workspaces(0).OpenDatabase(mabase)
    ' Assignation de la requète    sql "UPDATE quincaillerie INNER JOIN [saisie commandes] ON quincaillerie.RefArt [saisie commandes].RefArt SET quincaillerie.QuantStock = [quincaillerie]![QuantStock]-[saisie commandes]![UnitéReservé];"
    ' Exécution de la requète
    db.Execute sql
    ' Fermeture de la base
    db.Close
   
End Sub


 
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
28 sept. 2006 à 15:21
ce que tu as tenté ressemble a un mixe DAO/ADO (chaine de connexion)

Projet > References > Microsoft DAO 3.51 Object Library > OK

mabase = "c:\sia.mdb"

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0

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

Posez votre question
cs_luz
Messages postés
29
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
12 février 2013

28 sept. 2006 à 16:11
J' ais trouvé, il y avais un peu de mélange..merci à 2359 Renfield

Option Explicit
Dim db As Database
Dim sql As String
_____________________________________________________________________________________________
Private Sub Command1_Click()
' Ouvrir la base
 Set db = OpenDatabase("c:\sia.mdb")
    ' Assignation de la requète    sql "UPDATE quincaillerie INNER JOIN [saisie commandes] ON quincaillerie.RefArt [saisie commandes].RefArt SET quincaillerie.QuantStock = [quincaillerie]![QuantStock]-[saisie commandes]![UnitéReservé];"
    ' Exécution de la requète
    db.Execute sql
    ' Fermeture de la base
    db.Close
   
End Sub

merci à tous !!
0