IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

[VBA-A] Connection à une base Access


Sujet :

VBA Access

  1. #1
    Membre régulier Avatar de blaiso
    Profil pro
    Banquier
    Inscrit en
    Décembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Banquier

    Informations forums :
    Inscription : Décembre 2005
    Messages : 97
    Points : 104
    Points
    104
    Par défaut [VBA-A] Connection à une base Access
    Bonjour,

    J'ai fait une application Access qui tourne sans problème. Je voudrai la mettre sur le serveur afin de permettre un multi-usage.
    J'ai donc scindé ce fichier Access en deux: un fichier de tables et de requetes et un autre pour les formulaires et les Etats.
    Je voudrai maintenant attaqué le fichier de donnée (qui devient ma base de données) à travers le 2nd fichier qui joue le rôle d'interface. C'est là où commence mes problèmes.
    Quand je garde un seul fichier, j'accède aux données (sans probleme) avec le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Function Compte_Ouvrage()
    Dim db As DAO.Database, rst As DAO.Recordset
    Dim strSQL As String
    'Ouverture de la base de données
    Set db = CurrentDb() 
     
    strSQL = "SELECT count(*) as nbre FROM Ouvrage"  
     
            Set rst = db.OpenRecordset(strSQL)
     
         If Not rst.EOF Then
         Forms!Ouvrage!txtNbre = "OU" & rst!nbre + 1
         End If
    'fermeture
    rst.Close
    End Function
    Avec deux fichiers, le code suivant n'attaque pas la base (dans un module du fichier Interface "Client", qui doit chercher les données dans le fichier "BD"):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Function Compte_Ouvrage()
     
    Dim db As DAO.Database, rst As DAO.Recordset
     
    Dim strSQL As String
     
    'Ouverture de la base de données
     
    'Set db = CurrentDb()
    Set db = DBEngine.OpenDatabase("N:\INFORMATIQUE\GESTION\SERVEUR\BD.mdb")
     
    strSQL = "SELECT count(*) as nbre FROM Ouvrage"  
     
            Set rst = db.OpenRecordset(strSQL)
     
         If Not rst.EOF Then
         Forms!Ouvrage!txtNbre = "OU" & rst!nbre + 1
         End If
    'fermeture
    rst.Close
    End Function
    Message d'erreur: "Erreur de compilation du module..."

    Une idée de ce qu'il faut corriger dans la ligne d'ouverture de la base de données?
    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    L'erreur de compilation s'arrête sur quelle ligne de code ?

  3. #3
    Membre régulier Avatar de blaiso
    Profil pro
    Banquier
    Inscrit en
    Décembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Banquier

    Informations forums :
    Inscription : Décembre 2005
    Messages : 97
    Points : 104
    Points
    104
    Par défaut
    ligne de code d'arret:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set db = DBEngine.OpenDatabase("N:\INFORMATIQUE\GESTION\SERVEUR\BD.mdb")
    Le message du precedent post apparait à l'exécution du formulaire.
    Quand j'exécute la fonction directement, il affiche le message:
    "Erreur d'exécution '3024'
    Fichier N:\INFORMATIQUE\GESTION\SERVEUR\BD.mdb introuvable"

    MERCI cafeine d'avoir voulu en savoir plus.
    En fait le nom de ma base état faux d'où le message d'erreur.
    Dès que j'ai resolu ce probleme, il ne retrouvait pas le formulaire "Ouvrage" auquel il était fait reference.

    J'ai dû faire les petites modifications pour tout marche. Pour ceux que ça peut interesser:
    D'abord une procedure, puis une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Sub Compte_Ouvrage2()
     
    Dim db As DAO.Database, rst As DAO.Recordset
     
    Dim strSQL As String
     
    'Ouverture de la base de données
     
    'Set db = CurrentDb()
    Set db = DBEngine.OpenDatabase("N:\INFORMATIQUE\GESTION\SERVEUR\BDD.mdb") 'C'est le nom de la base qui n'était bon (BDD au lieu de BD)
     
    strSQL = "SELECT count(*) as nbre FROM Ouvrage"  
     
            Set rst = db.OpenRecordset(strSQL)
     
         If Not rst.EOF Then
         Var = "OU" & rst!nbre + 1
         End If
    'fermeture
    rst.Close
    End Sub
    une fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function Compte_Ouvrage()
     
    Call Compte_Ouvrage2
     
    Forms!Ouvrage!txtNbre = Var
    End Function

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment se connecter à une base ACCESS avec groupe de travail
    Par bambi98 dans le forum Bases de données
    Réponses: 1
    Dernier message: 17/04/2009, 12h18
  2. [VBA-P] : connexion à une base Access
    Par moabomotal dans le forum VBA Access
    Réponses: 3
    Dernier message: 11/04/2007, 16h40
  3. [VBA Excel]Interroger une base access depuis Excel
    Par Stephane_123 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/02/2007, 10h43
  4. Connecter une base access 2003 à BO
    Par pontoise dans le forum Access
    Réponses: 2
    Dernier message: 29/11/2006, 01h00
  5. [WCE5/VS2005] Connection à une base access.
    Par dacid dans le forum Windows Mobile
    Réponses: 11
    Dernier message: 14/11/2006, 18h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo