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 :

[DAO]Parcourir une table Access en VB / Pb niveau débutant


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut [DAO]Parcourir une table Access en VB / Pb niveau débutant
    Salut à Tous,

    c'est mon premier post sur ce forum.
    Après avoir fait un petit tour sur le site, je félicite tout le monde pour l'ambiance et le contenu du site.

    Je vais décrire mon problème du mieux possible; je précise que je suis un ancien développeur DOS/Windows 3.11 qui essaye de reprendre du service...

    -J'ai une Base de Données Access 2007 (Personnes.mdb)
    -Dans cette base, j'ai une table "Fiches" qui a au moins les champs suivant :
    .Code_Postal : qui est un numérique
    .Ville : qui est un champ texte

    Ce que je souhaite faire, c'est écrire une fonction Visual Basic (je DOIS le faire en visual basic, sinon ça ne collera pas avec la résolution de mon problème), qui parcourt la table "Fiches" et qui trouve le nom de la ville associée à un code postal.

    Mon problème est, me semble-t-il, plutôt syntaxique, car je connais peu Visual Basic dans Access. Ce n'est donc pas la peine de chercher quelque chose de compliqué, je souhaite seulement trouver une ville en fonction de son code postal.

    Je précise que j'ai fait pas mal de lien sur le site, et que je n'ai pas trouvé de page qui résolve mon problème. Si une telle page existe, il va de soi que je me contenterais du lien vers cette page.

    Voilà pour ma question, je vous dis à tous encore un

  2. #2
    Membre du Club Avatar de adil_suptem
    Inscrit en
    Décembre 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    salut
    vous avez une idée sur le dataenvirenment ou non ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Non, je n'ai pas d'idée sur le "dataenvirenment"; d'ailleurs, je ne sais pas ce qu'est un "dataenvirenment"...

  4. #4
    Membre du Club Avatar de adil_suptem
    Inscrit en
    Décembre 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    Bon en effet c'est un outil sous vb6 qui permet de gérer l'accés au base de donneés
    http://jacma.developpez.com/premierspasdatabase/
    Dans ce lien tu trouvera un PDF interessant qui explique les étape pour utiliser DataEnvironment si t'as besoin de plus d'info contact moi sur mon email
    je peux meme discuter ca avec toi sur msn ( adil635@hotmail.com )

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Merci adil_suptemn

    je regarde le lien que tu m'as donné, et je te tiens au courant...

  6. #6
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    Bienvenue sur le forum.

    -J'ai une Base de Données Access 2007 (Personnes.mdb)
    -Dans cette base, j'ai une table "Fiches" qui a au moins les champs suivant :
    .Code_Postal : qui est un numérique
    .Ville : qui est un champ texte
    Dans la mesure où tu ne feras pas d'opération sur le code postal, je te conseille plutôt d'en faire un champ de format Texte également.

    Ici, un lien vers une base exemple (plutôt au bas de la page).

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  7. #7
    Membre éprouvé Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    842
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations forums :
    Inscription : Février 2005
    Messages : 842
    Points : 919
    Points
    919
    Par défaut
    Salut,

    A ton code postal correspond une seule ville ou plusieurs ?

    Si tu n'as qu'une seule ville et que code_postal soit bien du numérique(ce qui m'étonne.... )
    Txt_ville et Txt_CodePostal étant des zones de texte de formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Txt_Ville=Dlookup("Ville","Personnes","Code_Postal=" & Txt_CodePostal)
    Sinon si code_postal est en texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Txt_Ville=Dlookup("Ville","Personnes","Code_Postal='" & Txt_CodePostal & "'")
    Ils ne savaient pas que c'était impossible, alors il le réalisèrent (Mark Twain)

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Merci à vous trois, adil_suptem, Domi2 et jean-paul lepetit,

    mon problème est résolu.
    Est-ce à moi de cliquer sur le bouton "Résolu" ou bien est-ce un admin qui s'en charge ?

    J'ai utilisé l'indication donné par Domi2 pour élaborer ma solution

    J'ai suivi vos conseils en transformant Code_Postal en texte.

    Mais (il y a un mais), je ne sais toujours pas écrire le code tel que j'aurais aimé le faire.

    Je donne l'algorithme que j'aurais aimé utiliser pour résoudre le problème. Je l'écris en pseudo-code, en fonction de mes connaissances actuelles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Ouvrir la table "Fiches" de "Personnes.mdb"
    Me positionner au premier enregistrement
    Trouve = faux
    Tant que PAS Fin Table "Fiches" ET pas Trouve
    si le <Code_Postal> courant est <Le code postal recherché> Alors 
    {<Ville_recherchée> prend la valeur <Ville_courante>; Trouve=vrai}
    Passer à l'enregistrement suivant
    Fin Tant que
    Si Trouve alors Afficher(Ville_Recherchée) Sinon Afficher("Ville non trouvée")
    Voilà, j'espère que mon pseudo-code n'est pas trop "pourri", je l'ai écris en fonction de différents langages que je connais, le Visual Basic n'étant pas forcément de ceux-là.

    Est-ce que quelqu'un peut me traduire ça en Visual Basic (à l'intérieur d'une base de données Access) ???

    Merci à Tous

  9. #9
    Membre éprouvé Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    842
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations forums :
    Inscription : Février 2005
    Messages : 842
    Points : 919
    Points
    919
    Par défaut
    La fonction DlookUp que je t'ai citée plus haut fait exactement ce que tu veux
    Ils ne savaient pas que c'était impossible, alors il le réalisèrent (Mark Twain)

  10. #10
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    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
    23
    24
    25
     
    Dim db As DAO.Database, rs As DAO.Recordset
    Set db = Currentdb
    Set rs = db.OpenRecordSet("Fiches",dbOpenDynaset)
    With rs
       If .RecordCount <> 0 Then
          .MoveFirst
          Trouve = False
          Do While Not .EOF AND Not Trouve
             If .Fields("Code_Postal") = "code posta recherché" Then
                Ville = .Fields("Ville_courante")
                Trouve = Vrai
             End If
             .MoveNext
          Loop
       End If
    End With
    Si Trouve Then
       Msgbox Ville
    Else
       Msgbox "Ville non trouvée"
    End If
    rs.Close
    Set rs = Nothing
    Set db = Nothing
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi!
    Albert Einstein

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Merci à Tous !
    Merci Mahefasoa, merci jean-paul lepetit,

    à toi Mahefasoa pour t'être donné la peine de traduire mon pseudo-code. J'ai pu mettre en oeuvre grâce à toi la solution EXACTE à mon problème.

    A toi jean-paul lepetit car j'ai fait fonctionner aussi cette fonction DlookUp et je dois avouer qu'elle "déchire" pas mal !!!

    Merci à vous tous qui avez pris le temps de m'aider à résoudre mon problème... ce forum...

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

Discussions similaires

  1. Parcourir une table access
    Par zizougo dans le forum VBA Access
    Réponses: 1
    Dernier message: 23/06/2011, 10h04
  2. Récupérer les mails Outlook dans une table Access
    Par zerrokooll dans le forum VBA Access
    Réponses: 79
    Dernier message: 07/07/2009, 14h22
  3. Ajouter un champs dans une table (Access 2000)
    Par Didier100 dans le forum Bases de données
    Réponses: 2
    Dernier message: 12/10/2004, 13h02
  4. insertion d'un type date dans une table access
    Par monstour dans le forum ASP
    Réponses: 7
    Dernier message: 18/06/2004, 16h57
  5. recherche dans une table Access en ASP
    Par D-D dans le forum ASP
    Réponses: 3
    Dernier message: 09/06/2004, 10h12

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