PB avec module [Résolu]

Signaler
Messages postés
54
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
6 mai 2011
-
Messages postés
54
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
6 mai 2011
-
Salut, j'ai un petit problème avec mon module.
Je veux faire une base de données access, et comme je compte utiliser souvent la connection j'ai créé un module (module1).
Voici mon code de form1:

<hr size="2" width="100%" /> Command1_Click()
    Call Module1.seconnecter
    Dim enreg As ADODB.Recordset
    Set enreg = New ADODB.Recordset
    enreg.Open "select nom, prenom from table1", data, adOpenDynamic, adLockBatchOptimistic
    enreg.MoveFirst
    Label1 = enreg!nom & " " & enreg!prenom
    End Sub
<hr size="2" width="100%" />
et dans mon module:
<hr size="2" width="100%" />
Public Sub seconnecter()
Dim data As ADODB.Connection

Set data = New ADODB.Connection

data.ConnectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= c:\test.mdb")
data.Open
End Sub
<hr size="2" width="100%" />
quand je lance l'application, j'ai "erreur 3001: "les arguments sont de type incorrect, en dehors des limites autorisées, ou en conflit les uns avec les autres"

Pourtant si je coupe la partie qui est dans le module et que je la colle de command1_click, ça marche nikel.
Merci d'avance.

7 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
57
Ou bien alors mettre data dans la definition du module et en variable public
soit
Option Explicit
'DAns le formulaire
Private Sub Command1_Click()
   Call Module1.seconnecter
   Dim enreg As ADODB.Recordset
   Set enreg = New ADODB.Recordset
   enreg.Open "select nom, prenom from table1", data, adOpenDynamic, adLockBatchOptimistic
   enreg.MoveFirst
   Label1 = enreg!nom & " " & enreg!prenom
End Sub<hr />
'DANS LE MODULE
Option Explicit
Public data As ADODB.Connection

Public Sub seconnecter()
   Set data = New ADODB.Connection
   data.ConnectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= c:\test.mdb")
   data.Open
End Sub<hr />, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
Salut, pour moi c'est soit

data.Provider = "Microsoft.Jet.OLEDB.4.0"
data.ConnectionString = "Data Source= c:\test.mdb"
soit
data.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= c:\test.mdb"
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
57
Salut,
Ce qu'il faut que tu ai à l'esprit c'est que dans le cas ou tu mettes
Dim data As ADODB.Connection dans seconnecter et bien la variable data n'est connue et active QUE dans la procédure seconnecter. Donc c'est normal que cela ne fonctionne pas dans le cas du module et que cela marche lorsque tu place data dans command1_click

Tu peux soit déplacer, soit faire une fonction qui retourne une ADODB.Connection
@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
Ensuite, si c'est pour le recordset que ca fonctionne pas, remplace Dim par Public pour la déclaration de la connection
Messages postés
54
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
6 mai 2011

Merci, ça marche.

Sinon tant que j'y suis, j'aimerai protégé mon base par un mot de passe.
J'ai mis 0000
Dans mon module je tape
  
data.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= c:\test.mdb", , "0000"

et la j'ai "Impossible de démarrer votre application. Le fichier d'information du groupes de travail est absent, ou ouvert en mode exclusif par un autre utilisateur"
Je sais je suis chiant, :-)
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
57
Salut,
Une seule question par topic normalement... en revanche n'oublie pas d'appuyer sur réponse acceptée sur le ou les posts qui t'ont aidé à le résoudre.
Merci d'avance

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
54
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
6 mai 2011

Ok, je repose une question alors.
Merci encore!!