Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/03/2011, 21h48   #1
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 200
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 200
Points : 18
Points : 18
Par défaut comunication entre 2bases access

bonsoir,

j'ai une premiere base access A qui lance via VBA un code VBA se trouvant sur une seconde base access B. et je souhaiterais le resultat d'un boolean se trouvant dans cette base B pour l'utiliser dans le code de la base A mais je ne sais pas comment faire pour la garder en memoire.
Avez-vous une piste?
merci
moimemessssssssss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 23h13   #2
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 258
Points : 5 258
Salut,

Serait-il possible que ton code VBA soit tout simplement une fonction qui renvoie un booléen récupérable dans la base A ?

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 08h17   #3
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 200
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 200
Points : 18
Points : 18
bonjour,

cest a dire il faut une public function a la place dune public sub?
si c'est cela, en utilisant une fonction cela peut il faire boguer le code?
quel autre avantage y a til?
merci
moimemessssssssss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 12h17   #4
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 258
Points : 5 258
Salut,

Une fonction situé dans la base B peux renvoyer un booléen, ce n'est pas le cas d'une procédure.

Exemple de la fonction dans la base B :

Code :
1
2
3
4
5
6
7
8
9
Public Function MaFonctionDansBaseB() as boolean
 
   if Forms!Formulaire1!Champ1="V" then
      MaFonctionDansBaseB=True
   else
      MaFonctionDansBaseB=False
   end if
 
end function
=========================

Exemple d'appel dans la base A:

Code :
1
2
3
4
5
Dim Resultat as boolean
 
Resultat=MaFonctionDansBaseB() 'Exécution de la fonction contenue dans base B et renvoie du résultat.
 
MsgBox(Resultat) ' affichage du résultat.
A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 23h26   #5
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 200
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 200
Points : 18
Points : 18
bonsoir,

j'ai essayé ceci :

voici la fonction de la base B

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
Public Function test() as boolean 
 
Dim check As Boolean
 
 
' ceci estune procedure se trouvant dans la base B permettant de faire des calcul
' le boolean check permet de s'assurer que tout est ok
Call traitement_date(check)
 
If check = True Then
    test = True
Else
    test = False
End If
 
End Function

base A

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
Public Sub calcul()
Dim chemin As String
Dim appliaouvrir As New Access.Application
Dim resultat As Boolean
 
 
chemin = "C:\base_calcul.mdb"
appliaouvrir.OpenCurrentDatabase (chemin)
appliaouvrir.Visible = True
appliaouvrir.Run ("test")
resultat = test ()
 
If resultat = True Then
    MsgBox ("OK")
Else
    MsgBox ("KO")
End If
 
appliaouvrir.Visible = False
appliaouvrir.Quit acQuitSaveNone
 
 
End Sub
et la ce code de la base A bloque en me disant qu'il connait pas test()
et si je met resultat=test à la place de resultat=test()
la variable resultat est vide car test l'est aussi

il arrive pas a recupere le boolean de la base
B

d'ou vient l'erreur?

merci
moimemessssssssss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 16h30   #6
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
Euh ... pourquoi n'ajoutes-tu pas tout simplement ta base A en référence à ta base B (outils/référenes) ?
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 21h22   #7
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 200
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 200
Points : 18
Points : 18
bonsoir,

j'ai fait outil référence puis fait parcourir pour rajouter la base
c'est ca??
a quoi ca sert de faire ca?

je l'ai rajouté mais j'ai toujours la même erreur.

merci
moimemessssssssss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 23h13   #8
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
C'est ça.

Ben, maintenant, tu n'as pas besoin de passer par l'ouverture de la base, et tout le tintouin.
Tu peux accéder directement à la fonction que tu as créée, comme si elle était dans Access de manière native si tu as tout bien fait... s'entend...
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2011, 21h40   #9
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 200
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 200
Points : 18
Points : 18
bonsoir

merci pour votre réponse
cependant lorsque je rajoute la base B des lors que je lance une procédure se trouvant dans la base A , la base B est lockée jusqua que je referme la base A (meme si la procédure lancée n'a aucun rapport avec la base B) ce qui n'est pas le cas avec le proccess que je souhaite mettre en oeuvre.

savez vous comment y remedier et/ou pourquoi ca marche pas?

merci
moimemessssssssss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 00h49   #10
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE


Bon...
repenons...
Tu fais quoi ? Pourquoi ? Pourquoi le fais-tu comme cela ?

Si à chaque fois qu'on donne une solution on découvre un nouvel élément, on n'a pas fini ...
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 21h32   #11
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 200
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 200
Points : 18
Points : 18
je ne donne pas de nouvel élément à chaque solution j'étudie juste les solutions et je regarde ce qu"elles impliquent et si ca convient c'est tout. quel sont les nouveaux élément?

bhen comme je l'ai deja expliqué j'ai besoin de récupérer le résultat d"un booléan d"une base B pour pouvoir l'utiliser dans la base a.
et je ne veux pas locker la base B car dans la base A j'ai des tables liées se trouvan dans la base B (qui sont mises a jour ou non avec le code de la base B d'ou le boolean) or si labase B est lockée j'ai un message m'avertisant que labase B est deja ouvert en mode exculsif par un autre utilisateur qui est moimeme

voila merci de votre aide
moimemessssssssss est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h37.


 
 
 
 
Partenaires

Hébergement Web