Pb avec le controle ADODC

TeDeum Messages postés 21 Date d'inscription mercredi 8 mai 2002 Statut Membre Dernière intervention 8 janvier 2008 - 11 juin 2002 à 18:16
PatriceVB Messages postés 562 Date d'inscription dimanche 16 décembre 2001 Statut Modérateur Dernière intervention 26 décembre 2007 - 12 juin 2002 à 18:34
Salut à tous,

J'essaye de faire un programme qui se connecte à une base de donnée et qui remplit les champs du Nom, Adresse, Ville, Code Postal, Telephone, etc... en fonction d'un fichier texte.
La lecture du fichier texte se fait correctement et je crée mes bases de donnée en fonction des indicatif contenu dans le fichier texte(par exemple 0130.mdb, 0323.mdb...)
Tout se passe correctement, mais je n'arrive pas à me connecter à ma base de donnée. J'ai le code erreur : 'Methode ou membre de donnée introuvable' sur le code 'BaseAccess.DatabaseName = CheminBase+NomBase'
Voici le code :
    Dim sLigne
    Dim Valeurs
    Dim Indicatif, OldIndicatif
    
    ' Ouverture du fichier
    Open psNomFic For Input As #1
    ' La première ligne n'est pas à traiter !
    Line Input #1, sLigne
    
    ' Traitement du fichier
    Do While Not EOF(1) = True
        'Lecture d'une ligne
        Line Input #1, sLigne
        Valeurs = Split(sLigne, ";")
        
        ' On recupere l'indicatif
        Indicatif = Left(Replace(Valeurs(4), " ", ""), 4)
        ' Si l'indicatif change on se connecte à la nouvelle base
        ' sinon on reste connecté
        If OldIndicatif <> Indicatif Then
            OldIndicatif = Indicatif
            ' On vérifie si la base existe
            If Not FichierExiste(gsRepDest + Indicatif + ".mdb") Then
                ' Elle n'existe pas, on copie donc le fichier
                copier gsBaseSource, gsRepDest + Indicatif + ".mdb"
            End If

            ' Ouverture de la base de donnée
            BaseAccess.DatabaseName = gsRepDest + Indicatif + ".mdb"
            BaseAccess.RecordSource = "Annu"
        End If

        ' Ajout dans la base de donnée
        With BaseAccess.Recordset
            .AddNew 'ajoute un nouveau
            .Fields("CPOSTAL") = Valeurs(0)
            .Fields("VILLE") = Valeurs(1)
            .Fields("NOM") = Valeurs(2)
            .Fields("ADRESSE") = Valeurs(3)
            .Fields("TELEPHONE") = Valeurs(4)
            .Fields("FAX") = Valeurs(5)
            .Fields("PRO") = Val(Valeurs(6))
            .Update 'Met a jour
        End With
    Loop
    'Fermeture du fichier
    Close #1


Si vous savez ce qui cloche merci de me le dire.

3 réponses

PatriceVB Messages postés 562 Date d'inscription dimanche 16 décembre 2001 Statut Modérateur Dernière intervention 26 décembre 2007
11 juin 2002 à 21:13
Il y a un \ à la fin de ta variable CheminBase ?
Si c pas le cas, il le faut pour respecter l'arborescence Dossier\Fichier.
voilà
@+
P.S: Si tu veux je peux t'indiquer comment faire ce que tu veux en utilisant les méthodes ado mais sans utiliser de controle, c simple et propre et ça marche tout le temps.
0
TeDeum Messages postés 21 Date d'inscription mercredi 8 mai 2002 Statut Membre Dernière intervention 8 janvier 2008 1
12 juin 2002 à 09:30
Salut PatriceVB,

Déjà merci pour ton aide.
Alors, mon chemin se termine bien par un "" et je ne sais toujours pas d'où vient ce problème.
Mais j'ai trouvé une autre méthode pour me connecter et ajouter des enregistrements dans ma base. En effet, je n'utilise plus les controles ADO, mais je passe par la référence ActiveX Data Object 2.5 et ca fonctionne correctement.
Voici en gros le code :

Dim MaBase As New ADODB.Recordset
Set BD = New ADODB.Connection

BD.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + CheminBase + NomBase

MaBase.Open "Annu", BD, adOpenDynamic, adLockOptimistic

MaBase.AddNew
MaBase("MonChamp") = MaValeurs
MaBase.Update
MaBase.Close
Set MaBase = Nothing
BD.Close

Encore merci à toi.
PS : Si c'est cette méthode que tu voulais me montrer, bein j'ai trouvé. Difficilement c'est vrai mais j'ai trouvé. Sinon je suis curieux de connaître cette méthode aussi ;-)
0
PatriceVB Messages postés 562 Date d'inscription dimanche 16 décembre 2001 Statut Modérateur Dernière intervention 26 décembre 2007
12 juin 2002 à 18:34
C'est exactement cette méthode que j'allais te montrer :-)
C bien que t'es trouvé tout seul.
Si tu veux mon avis personnel, c bien mieux de programmer de la sorte que de programmer avec les controles ! En utilisant le modèle ADO comme tu le fais, tu peux simplement tout faire et proprement (en sachant tout ce qui est fait !).Si tu veux d'autres infos sur le modèle ado fais moi signe, mais sache qu'avec ce modèle tu peux gérer le multiutilisateur simplement, executer des requetes sql simplement...
@+
0
Rejoignez-nous