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

VB 6 et antérieur Discussion :

Interaction avec access


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Par défaut Interaction avec access
    Bonjour
    je voudrais savoir comment extraire toutes les données d'un champs multiligne se trouvant dans une table access.(req SQL)
    mon programme est en VB6.
    Le problème c quand je fais un SELECT et en filtrant selon le nom de mon champ il n'en prendra que le premier.
    EXP:
    ch1 ch2 ch3 ch4 ch5 ch6
    a v1 v2 v3 v4 v5
    a v6 v7 v8 v9 v10
    a v11 v12 v13 v14 v15
    b x
    c t
    à chaque TextBox de ma forme, il faut que je lui associe le résultat de la rerquête en filtrant sur ch1.
    Donc par exemple il faut faire apparaître à la fin de l'exécution TextBox1.Text=v1 , TextBox2.Text=v2..

    Le probl se réside en fait dans la forme de la requête que je dois introduire.



    MERCI

  2. #2
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    A ma connaissance il n'existe pas de champs multiligne dans access. A la limite, des champs memo. Est ce de cela dont tu parles ?
    Essaye d'expliquer, parce que ma boule de cristal est maheuresment tombée par terre et a volé en eclats.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Peux-tu déjà nous montrer ta requête SQL ?

    De plus je ne comprends pas, tu parles de filtrer sur le nom du champ on filtre sur une valeur dans un champ.

    Un peu plus d'explications et de détails sont nécessaires, car comme le dit Delbeke, la boule de cristal est cassée.

    Starec

  4. #4
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Par défaut
    Bonjour
    voilà le problème

    pour simplifier, j'ai 4 champs
    CELL VOISINE BCCH TYPE
    12 10 1 2
    12 11 5 4
    12 13 6 7
    18 20 21 9

    j'ai des textbox dans ma forme et je voudrais extraire dans chaque textbox les voisines
    ma requête est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select VOISINE from [ma table] where CELL '"&combobox1.text&"'
    où combobox1.text représente le nom de ma cellule qui est par exemble 12.
    la sortie ne m'affiche que le premier ligne:"12 10 "
    donc je voudrais savoir comment éditer mon code de façon à ce que à chaque textbox je reçois le numéro de la voisine.

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Par défaut
    Je voudrais si c possible poser une question,
    qu'est ce que memo

  6. #6
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Un champ de type memo peut contenir un texte d'(une longeur supérieure à 255 caractères.
    Voici ce qu'indique l'aide vb sur les type de données d'un champs de base de données
    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
    26
    27
    Field, types de données
     
    Le tableau suivant fournit la liste des types de données Field.
     
    Type de données DAO Field Constante 
     
    Big Integer               dbBigInt 
    Binary                     dbBinary 
    Boolean                   dbBoolean 
    Byte                       dbByte 
    Char                       dbChar 
    Currency                 dbCurrency 
    Date/Time               dbDate 
    Decimal                   dbDecimal 
    Double                    dbDouble 
    Float                      dbFloat 
    GUID                      dbGUID 
    Integer                   dbInteger 
    Long                      dbLong 
    Long Binary (OLE Object) dbLongBinary 
    Memo                    dbMemo 
    Numeric                 dbNumeric 
    Single                    dbSingle 
    Text                      dbText 
    Time                      dbTime 
    TimeStamp              dbTimeStamp 
    VarBinary                dbVarBinary
    Par ailleurs ce que tu essaye de faire n'est pas très coherent. La requete que exécute va renvoyer un recordset contenant plusieurs reponse. Dans l'exemple que tu donnes, il y en aura trois, mais en fait au départ, tu ne sais pas combien il y en aura. Donc , je ne vois pas comment tu peux placer ces résultats dans un nombre pré-déterminé de textboxes.

    Ce qu'il est possible de faire par contre, c'est d'utiliser un seul textbox multilignes . Quelque chose du genre

    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
    Private Sub Command1_Click()
      Dim Sql As String
      Text1.Text = ""
      Sql = "Select VOISINE from [ma table] where CELL = '" & combobox1.Text & "' "
      Data1.RecordSource = Sql
      Data1.Refresh
      If Data1.Recordset.RecordCount = 0 Then
        MsgBox "Pas de réponse"
        Exit Sub
      End If
      Do While Not Data1.Recordset.EOF
        Text1.Text = Text1.Text & Data1.Recordset("VOISINE") & vbCrLf
        Data1.Recorset.MoveNext 'lit la réponse suivante
      Loop
    End Sub

  7. #7
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Par défaut
    Bonsoir et merci pour la réponse rapide

    je voudrais poser une question
    l'objet Data1 c quoi en fait et comment le déclarer, car j'ai l'habitude d'utiliser cette déclaration

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Public resultat As New ADODB.Recordset
              Public sql as new  ADODB.Command
     
    resultat=sql.execute


    Une autre question si c possible
    j'ai plusieurs Label dans ma UserForm et je voulais afficher le contenu de plusieurs Label en utilisant une itération, par exemple dans des MesagBox:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim i as integer
    for i=1 to 12
    MsgBox(Labeli.Caption)
    next
    mais cette méthode ne marche pas. Est ce qu'il y a un truc à faire pour afficher les contenus



    Merci

  8. #8
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    J'avoue être surpris de te voir manipuler des bases de données et, à priori, ne pas connaitre les groupes de controles, mais bon...

    Pour ce qui est de la base de données, je laisse les autres te répondre, pour les labels, plutôt que de créer 12 labels indépendants les uns des autres, tu vas créer un premier label (auquel je te conseille au passage de donner un nom parlant plutot que de laisser Label1) et lui affecter '0' à sa propriété Index. Tu n'auras plus ensuite qu'à copier coller ce controle Label, les suivants auront donc l'indice 1, puis 2, puis 3, etc... Pour 12 labels regroupés dans un groupe de controles (indexés donc) tu auras 12 fois le même nom mais chaque label étant différencié par son Index (De 0 à 11).
    Imaginons que tu as appelé tes labels "LblBdd" par exemple ton code pour afficher le contenu des labels devient donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim i as integer
    
    For i = 0 to 12
    MsgBox LblBdd(i).Caption
    next

  9. #9
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    l'objet Data1 c quoi en fait et comment le déclarer, car j'ai l'habitude d'utiliser cette déclaration
    En fait pour ecrire l'exemple, j'ai fait au plus court, j'ai utilisé un data control de la boite à outil et je l'ai posé sur une feuille vb (donc travail en DAO).
    A toi de transposer la réponse à ton cas particulier, car tu trouveras difficilement quelqu'un ici pour ecrire ton programme.

  10. #10
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Par défaut
    Merci pour la réponse, en fait j'ai pu extracter l'ensemble des données(en filtrant sur un champ particulier) de ma base dans un TextBox.

    la question maintenant c que je dois copier l'ensemble des données qui se trouvent dans ce TextBox et les coller dans un nouveau fichier texte .txt et si c possible dans un fichier excel.

    comment peut on le procéder ?

  11. #11
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Vois dans l'aide en ligne de vb, les instructions Open Print Close qui permettent d'ecrire dans un fichier. Pour un fichier excel, vois dans les faq de ce forum, il y a plusieurs articles permettant de piloter excel depuis vb.
    Mais à mon avis, tu devrais surtout te lire les tutoriaux de vb , toujours dans ce site, avant de te mettre à programmer au petit bonheur la chance.

    En passant, on utilise le verbe extraire, le verbe extracter n'existe pas en français.

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/09/2006, 16h47
  2. Interaction prog C avec Access
    Par richard_sraing dans le forum C
    Réponses: 5
    Dernier message: 27/05/2006, 20h10
  3. Réponses: 10
    Dernier message: 30/06/2004, 13h00
  4. Aide sur ouverture de fichier avec access
    Par FusionR dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 17/06/2004, 12h02
  5. Réponses: 4
    Dernier message: 17/05/2004, 09h57

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