Access 97, tout bête

Utilisateur anonyme -  
blux Messages postés 5039 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

En fait mon problème est tout bête, je souhaiterais écrire dans une table sous Access 97 mais en VBA, pas avec une simple requête.
Je n'ai aucune idée des fonctions à utiliser et je vous serez très reconnaissant si vous pouviez m'éclairer à ce sujet.
Merci par avance.

Paul

4 réponses

  1. omar
     
    Sous google tape +vba +acess +requete c la seul aide que je peux t apporter normalement tu doit trouver ton bonheur!
    A+ Omar cvhenibi
    0
  2. blux Messages postés 5039 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Salut,

    il suffit de définir un recordset qui est le nom de ta table pour travailler dessus.

    Un petit exemple :
    Dim Db As Database
    Dim Rs As Recordset
    Dim MonCtl As Control
    Dim Element As Variant
    ...
    Set Db = CurrentDb
    Set Rs = Db.OpenRecordset("Liste_Composition", dbOpenDynaset)
    Set MonCtl = Forms!principal!Ajout_Total_Liste
    For Each Element In MonCtl.ItemsSelected
    Cont = MonCtl.Column(0, Element)
    'MsgBox Cont
    On Error Resume Next
    With Rs
    .AddNew
    !Num_liste = Liste
    !Num_Contenu = Cont
    .Update
    .Requery
    End With
    Select Case Err.Number
    Case 0
    Case 3022
    MsgBox "La liste suivante existe déjà et n'est pas prise en compte :" & vbCrLf _
    & MonCtl.Column(1, Element) & " " & MonCtl.Column(2, Element) _
    & " " & MonCtl.Column(3, Element) & " " & MonCtl.Column(4, Element) & " " _
    & MonCtl.Column(5, Element) & vbCrLf, vbCritical
    Resume Next
    Case Else
    MsgBox Err.Number & Chr(13) & Err.Description
    GoTo Fin:
    End Select
    Next
    Rs.Close
    Db.Close
    Set Rs = Nothing
    Set Db = Nothing

    Ici, la table dans laquelle on veut ajouter des données s'appelle liste_composition et elle comprend les champs num_liste et num_contenu.

    On va voir ce que l'utilisateur a sélectionné dans le formulaire 'ajout_total_liste' et on écrit dans la table toutes les données cochées avec la méthode 'addnew'

    Va faire un tour sur l'aide de recordset, tu trouveras plus de précisions.

    A+ Blux
     "Les cons, ça ose tout.
    C'est même à ça qu'on les reconnait"
    0
  3. Utilisateur anonyme
     
    Salut à toutes et tous,

    Le post de blux manque un peu d'explication:

    Pour écrire des données dans une table sous VBA, il faut
    1. Définir les variables dont tu auras besoins
    Dim Db As Database (un pointeur vers ta DB)
    Dim Rs As Recordset (un pointeur vers la table de cette DB)

    2. Tu initialises ces variables:
    Set Db = CurrentDb (Db est la DB Access sur laquelle tu travailles)
    Set Rs = Db.Db.OpenRecordset("Liste_Composition", dbOpenDynaset)
    "Liste_Composition" est le nom de la table. Rs pointe sur cette table.

    3. Pour ajouter un enregistrement à la table, tu utilises:
    Rs.AddNew
    4. Pour référencer un champ de cette table tu utilises:
    Rs("Nomduchamp") = valeur que tu veux lui donner
    5. Tu fais une mise à jour de la table:
    Rs.Update

    J'espère que ça te permetra de commencer.

    :-)

    Rien n'est plus dangereux qu'une idée quand on a 
    qu'une idée
      :-)
    0
  4. blux Messages postés 5039 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    ben c'est surtout que le 'coller', n'a pas gardé les indentations.

    pis je veux pas donner trop d'explications, c'est plus glorifiant, à mon avis, de s'investir dans l'analyse du code...

    A+ Blux
     "Les cons, ça ose tout.
    C'est même à ça qu'on les reconnait"
    0