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 74
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 74
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
Rejoignez-nous