[VB] aider moi a enregistrer mes donnes ??

khouloud -  
 Panoramix -
bonjour, je suis une debutante en vb.

j'ai creer une petite application en vb,qui consiste à entrer des indicaterus et des mesures.

Mon probleme c que une fois je quitte l'application rien n'est enregistrer.

je veux savoir comment les enregistrer????

merci.

17 réponses

  1. Luffy =) Messages postés 366 Statut Membre 110
     
    Salut =)

    Pour stocker des données, tu as le choix entre :
    -> un fichier
    ->une base de données

    Evidemment, si dans ton appli tu mets ça dans une liste et que quitte l'appli, les données ne sont stockées nulle part. Il faut donc les écrire dans un fichier (plus simple, mais s'il y a bcp de données vite chiant) ou dans une base de données (+ dur, mais + sûr, + structuré, + tout quoi !)

    voili voilou
    1
    1. khouloud
       
      bonjour,
      est ce que tu peux me dire comment je peux effectuer cette commande d'enregistrement sur une base.

      MOi,mon programme demande à l'utilisateur d'entrer des donnés sous forme de valeur ,ces donnees je veux les enregistrer, pour qu'il puisse les ouvrir aprés.
      0
  2. Panoramix
     
    Bonjour,

    Pour enregistrer sur un fichier dans votre cas, c est plus facile les fichier a accès séquentiel, il faut juste respecter l'ordre de saisie des données qui doit être le même que celui de les charger exemple

    strFile = "C:\" & strFile & ".dat"

    Open strFile For Random As #1

    Put #1, 1, P0
    Put #1, 2, BAT10
    Put #1, 3, TVA0
    Put #1, 4, BAT1
    Put #1, 5, TVA
    Close #1

    le nom du fichier où sauvegarder strFile doit être évidement déclaré comme string

    pour recharger les données
    Open strFile For Random As #1

    Get #1, 1, P0
    Get #1, 2, BAT10
    Get #1, 3, TVA0
    Get #1, 4, BAT1
    Get #1, 5, TVA

    txtP0.Value = P0
    txtBAT10.Value = BAT10
    txtTVA0.Value = TVA0
    txtBAT1.Value = BAT1
    txtTVA.Value = TVA
    Close #1

    Voila facile et efficace
    1
  3. btissam2 Messages postés 22 Statut Membre 4
     
    salut
    aprés avoir établie la connection entre ton prog et ta base de donnée (je te conseil d'utiliser la technologie ADO)
    prosédes comme suit
    rs.addnew
    ecrire
    rs.update

    rs c'est les enregistrements et ecrire c'est une procédure pour remplir ta base de donnée par exemple tu peut la définir (je ne connait pas tes donnée )comme suit:
    sub ecrire()
    rs!poids =text1.text
    rs!age=text2.text
    end sub
    et pour les afficher tu crée une procedure pour l'affichage
    par expl
    sub afficher ()
    text1.text=rs!poids
    text2.text=rs!age
    end sub
    j'éspére que ça va marcher
    a+
    0
    1. khouloud
       
      bonjour,
      mes donnees se sont des single(taux de marge,taux de benefice....).
      donc si j'ai bien compris il faut que je fait connection avec une base vide je réalise les:

      rs.addnew
      ecrire
      rs.update

      j'ai pas compris le fonctionnenment de " rs".elle est déclaré par défaut?

      sub ecrire()
      rs!taux de bénéfice =text1.text
      rs!estimation=text2.text
      end sub

      c'est correcte comme ca?
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. khouloud
     
    j'ai oublié de te dire que j'ai trouve une demi solution sans base c'est dans la commande enregistrer sous j'écrit:

    Open ("C:\form.frm") For Output As #1
    Close #1

    Mais l'erreur est: "l'entréé dépasse la fin de fichier" c:\form.frm".
    0
  6. Luffy =) Messages postés 366 Statut Membre 110
     
    Salut =)

    en fait rs = Enregistrement. je ne connais pas sépcialement le VB, mais je ne pense pas que ce soit déclaré sans rien faire. Dans une base de données, quand tu ajoutes une ligne de données, on appelle ça un enregistrement.

    Sinon, tu as bcp de données à stocker ? si tu n'en as pas bcp, tu px en effet stocker dans un fichier ce sera bcp plus simple.
    Et de même, je ne sais pas comment on fait pour lire et écrire dans un fichier en VB.
    0
  7. khouloud
     
    merci beaucoup,
    je vais essayer de creer une base.
    encore merci
    0
  8. btissam2 Messages postés 22 Statut Membre 4
     
    salut khouloude

    je te donne un petit exemple j’éspére que ca va être utile pour toi
    tu va dans projet de la barre d’outil tu click sur références et tu coche la case (microsoft Active X Data Objects 2.0 library ) c la référence qui va te pérmettre de réaliser la connection avec ta base aprés, tu ajoute un module + ta forme éxistante

    dans ta partie de module

    Global db As ADODB.Connection
    Global rs As ADODB.Recordset
    Sub connexion() 'procedure qu'on va utiliser dans la form pour etablir la cnnection
    entre la base et le prog
    Set db = New ADODB.Connection
    With db
    .Provider = "microsoft.jet.oledb.4.0"
    .ConnectionString = "c:\btissam.mdb" 'btissam c le nom de la base de données
    .CursorLocation = adUseClient
    .Open
    End With
    End Sub
    Sub deconnexion() 'procedure pour la déconnection qu'on va utiliser dans la form
    db.Close
    Set db = Nothing
    End Sub

    dans ta partie form

    Private Sub ecrire() 'procédure pour le remplissage de la base
    rs!nom = nom.Text
    rs!prenom = prenom.Text
    rs!tel = tel.Text
    End Sub
    Private Sub afficher() 'procédure pour l'affichage
    nom.Text = rs!nom
    prenom.Text = rs!prenom
    tel.Text = rs!tel
    End Sub

    Private Sub ajouter_Click()
    rs.AddNew
    ecrire
    rs.Update
    End Sub

    Private Sub dernier_Click()
    rs.MoveLast
    afficher
    End Sub
    Private Sub clean()
    nom = ""
    prenom = ""
    tel = ""
    nom.SetFocus
    End Sub

    Private Sub effacer_Click()
    clean
    End Sub

    Private Sub Form_Load()
    connexion
    Set rs = New ADODB.Recordset
    rs.Open "select * from betty", db, adOpenDynamic, adLockOptimistic ‘betty c le nom de la table utilisée

    afficher
    End Sub

    Private Sub modifier_Click()
    ecrire
    rs.Update
    End Sub

    Private Sub precedent_Click()
    rs.MovePrevious
    If rs.BOF Then
    rs.MoveFirst
    End If
    afficher
    End Sub

    Private Sub premier_Click()
    rs.MoveFirst
    afficher
    End Sub

    Private Sub quitter_Click()
    Dim rep As String * 20
    rep = MsgBox("êtes vous sûre de vouloir quitter?", vbQuestion + vbOKCancel)
    If rep = vbOK Then

    Unload Me
    deconnexion
    End If
    End Sub

    Private Sub suivant_Click()
    rs.MoveNext
    If rs.EOF Then
    rs.MoveLast
    End If
    afficher
    End Sub

    Private Sub supprimer_Click()
    rs.Delete
    rs.MoveNext
    If rs.EOF Then
    rs.MoveFirst
    End If
    End Sub

    une chose pour le remplissage ou l’affichage on utilise par exemple (rs!tel) . ce qui est écrit aprés le rs doit correspendre au champs de ta base (même écriture) par exemple (tel) c un champ dans ma table betty de la base btissam j'éspére que ça va marcher cette fois a+
    0
    1. khouloud
       
      salut btissam,merciiiiii beaucoup pour ton aide.
      juste une question la procedure ajouter, c pour ajouter un enregistrement dans la base ?
      si oui elle ne marcher pas.j'ajoute dans les textebox mais dans la base ya rien.
      encore merciiiiii
      0
  9. khouloud
     
    salut btissam,merciiiiii beaucoup pour ton aide.
    juste une question la procedure ajouter, c pour ajouter un enregistrement dans la base ?
    si oui elle ne marcher pas.j'ajoute dans les textebox mais dans la base ya rien.
    encore merciiiiii
    0
  10. blurk Messages postés 493 Date d'inscription   Statut Membre 160
     
    salut
    juste une petite astuce grammaticale:
    pour savoir si un verbe se conjugue à l'infinitif,
    (aider moi , rien n'est enregister)
    ou au participe passé, voire à l'impératif
    (aidez moi, rien n'est enregistré)
    une astuce:
    utiliser un verbe du 2e/3e groupe comme vendre, servir
    exemple :
    (servez moi, rien n'est vendu)
    est bien plus correct à l'oreille que
    (servir moi, rien n'est vendre)
    étonnant non ?

    sinon, pour les fichier, dans l'aide de VB
    voir open, read, write, close
    une base de donnée ? est-ce bien nécessaire ?

    cordialement, et désolé pour la disgression
    0
  11. khouloud
     
    pour la base oui il le faut.
    pour les fichier c pas ma question comment l'ouvrir mais de copier des donnes et des enregistrement.
    ps
    c un frum de programmation non????
    0
    1. Luffy =) Messages postés 366 Statut Membre 110
       
      c un frum de programmation non????

      en effet. mais si tu dis ça par rapport à la remarque de blurk concernant la syntaxe de tes messages, il a tout à fait raison. Malgré que ce soit un forum de programmation, il est toujours plus facile et plus agréable d'aider une personne qui s'exprime correctement.

      En fait, j'appelerais ça tout simplement du respect.
      0
  12. btissam2
     
    salut khouloud
    pour la pocédure ajouter permet d'ajouter les données dans ta base de donnée. Mais je ne sais pas ou est le prob car avec ce code ca marche chez moi
    peut être que dans la procédure écriture et affichage t'a eu des contrainte par exemple dans la procédure écriture ta une ligne comme suit
    rs!nom = nom.Text
    le 2éme "nom" prés de text c le nom de la zone text tu peux la changer par text1 ou selon le nom de ta zone text. c le même truc dans ta procédure afficher
    a+
    0
  13. khouloud
     
    salut btissam2,

    juste une question au niveau de la form je veux ouvrir deux table,est ce que j'écris:
    Private Sub Form_Load()
    connexion
    Set rs = New ADODB.Recordset
    rs.Open "select * from bd1", db, adOpenDynamic,adLockOptimistic

    rs.Open "select * from bd2", db, adOpenDynamic,adLockOptimistic

    afficher
    End Sub
    0
  14. btissam2 Messages postés 22 Statut Membre 4
     
    salut khouloud
    en réalité j 'ai jamais utiliser 2 tables dans la même form. pour chaque table je fait une nouvelle connexion (dans une nouvelle form) . mais au niveau du module je le laisse tel qu'il est. je ne sais pas. essayes ta méthode et si elle ne marche pas essayes la mienne
    a+
    0
  15. emmanuelle
     
    voila je commence avec le vb.
    J'ai créer une interface, les utilsateurs remplice des cases (peu) mais j'aimerai qu'ils puissent enregistrer leur travail. Pour ça j'ai deja créer un menu fichier - enregistrer dans la barre des taches mais je ne c pas comment faire des fichiers

    merci d'avance pour votre aide
    0
    1. yasser
       
      salut khouloud tu dois lire des cours sur la technologie ADO, tu dois comprendre les methodes de connexion et les controles qui vous aides à le faire, cherche à savoir à quoi sert ces controle: ADOD, DATA et tu dois aussi chercher à koi sert les concepteurs, genre DATAENVIRONEMENT, et DATAREPORT, ces controles sont des controles active-x disponible avec la version 6 de VB. tu pe toujours consulter MSDN qui te donnera tous les exemples de code et d'application dont tu a besoin pour faire des programmes basés sur des bases de données.
      n'oublie surtt que tu dois avoir des notions en SQL (structured querry language), cherche sur comment ça marche tu torouvera des cours pour cela, et bon chance :)
      0