Tuto VB/Access

Fermé
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 - 5 juin 2008 à 11:53
 Rikkunter - 22 août 2008 à 16:18
Bonjour,

Je dois réaliser une base de temps avec le couple VB6 / Access.

Je recherche donc des tutos car je n'ai jamais utilisé ni l'un, ni l'autre.

Merci.
A voir également:

284 réponses

Utilisateur anonyme
10 juin 2008 à 14:41
"Je ne peux pas les mettre avec le code. Parce que ça sera au user de remplir le tableau"

Je ne comprends rien. Faut bien remplir à un moment
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
10 juin 2008 à 14:43
Euh ... tu fais référence à quel post ? ^^
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
10 juin 2008 à 14:49
???? qui c'est ça ...
AHHHHHHHHHHHHHHHH un fantômeeeeeeeeee
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146 > Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016
10 juin 2008 à 14:50
Oublie pas de regarder le post 209. ^^

'tain on en rempli des pages avec mon bordel. xD
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 08:10
Salut à tous. (même si j'ai l'impression que ce tous s'adresse à Polux vu que Rikk n'est pas là aujourd'hui).
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 juin 2008 à 09:02
Salut à vous ...

Pas là Rikki aujourd'hui ??? :-((

Je t'envoie le fichier ... et je file boire un café ... alors ne commence pas à raler ... tu vas encore trouver des modules supplémentaires ... (eh oui peut pas m'empécher de les multiplier ..). Un jour tu me remercieras t'avoir fait ça ...

;o)

https://www.cjoint.com/?gli7QgOptV

je suis plus là ---->>>>>>>>>
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 09:06
Me faut juste un peu de temps pour comprendre à quoi servent toutes les fonctions que tu met dedans mais sinon ça va.

Pis non, le mercredi Rikk elle est pas sur le pc.

C'est chiant, on s'ennuie ! :(
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 juin 2008 à 09:15
ben oui ... quikon va embéter ?... pffffffff elle pourrait prévoir une suppléante ...

:o)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 09:23
Elle est trop égocentrique, elle pense qu'à elle. ^^

Mais au fait, tu passes combien de temps sur mon problème le soir ?
Je voudrais pas te prendre toutes tes soirées.

Ps : une petite question.
Pour le mode de calcul retenu.

Dans combo3.click, tu met :
.Text1.Text = ModESEnt_STD.getModCalcRetenu


Et dans ModESEnt_STD :
getModCalcRetenu = entStd.Mod_calc_retenu


Ma question c'est comment tu peux récupérer le mode de calcul alors que tu ne passe aucun paramètre ? Oô
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 juin 2008 à 09:38
Alors, pour le temps ... sans vouloir te vexer (loin de là) ... pour règler le beug, j'ai mis 5 à 10 minutes et 15 minutes pour remettre de l'ordre ....

pour la question technique :

Mod_calc_retenu fait partie de la structure qui reçoit les données du recordset.
Si tu remarques bien, lorsque je fais une requête, je récupère toujours toutes les données d'un tuple (ligne complète d'un enregistrement). Ensuite je remplis ma structure avec le recordset. Je peux ainsi avoir accès à tous les éléments. Ca peut paraître bourrin de prendre tous les éléments dans le recordset pour une seule valeur, mais je ne perds pas plus de temps d'accès à le faire, je n'ai pas à construire une fonction supplémentaire, et bien souvent on peut avoir besoin de récupérer un autre élément lié au résultat de la requête (par exemple l'Id ou une clé étrangère pour faire une recherche dans une autre table).

;o)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 09:45
Okkkkkk !

J'avais pas compris. :)

Ps : niiice, je viens aussi de comprendre comment marchait les recordset.sort

EDIT : ah oui mais non, ça marche pas. xD
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 10:19
Je vois bien que tu ne sais pas quoi faire, alors je vais en profiter pour te poser une nouvelle question. :)

Form1.adoData.Recordset![Libelle] = Trim$(Me.txtLibelle.Text)


Je n vois pas vraiment à quoi sert le Trim$.
Parce que Me.txtLibelle.text va récupérer la valeur insérée dans le champ txtLibelle et va l'affecter dans la form1.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 juin 2008 à 10:34
tu peux enlever le "$" qui ne sert strictement à rien ... ensuite la fonction Trim() permet d'enlever les espaces avant et après une chaîne de caractères :

Trim(" coucou ") renvoie "coucou"

Un espace dans un textBox compte comme un caractère. Il est parfois utile de s'assurer que l'utilisateur n'est pas mis des espaces. Imagine que l'utilisateur doive mettre "Oui" ou "Non" dans une zone texte. Et que tu testes la valeur saisie.
" Oui" n'est pas égal à "Oui" ni à "Oui " ... comprendo ?

;o)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 10:40
Je comprendo. ^^


Euh ... dis moi, si j'ai 3 champ dans mon datagrid.
Ça ne suffit pas ça pour le trier ?
Private Sub grid_HeadClick(ByVal ColIndex As Integer)
    On Error GoTo err
    Select Case ColIndex

    Case 1
        Me.adoData.Recordset.Sort = "[Libelle]"
    Case 2
        Me.adoData.Recordset.Sort = "[Position_affichage]"
    Case 3
        Me.adoData.Recordset.Sort = "[id_std]"
    End Select
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 juin 2008 à 10:46
heuuu oui je crois ... si tu click sur la colonne ça doit faire le tri :o))

a voir ...
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 10:58
C'est ce que je pensais aussi.
Mais si je clique sur Position_affichage, il me tri par Libelle.

Et si je clique sur les 2 autres, il me tri ça n'importe comment. xD

EDIT : c'est bon j'ai trouvé mon erreur.
Fallait commencer à 0 et non à 1.

Par contre il me tri 1 - 12 - 2 ...
Faut que je change ça.
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 11:36
Euh ... tu vas peut être me prendre pour un NooB, mais je viens de rajouter un datagrid dans un nouveau form.
Et je veux rajouter des lignes comme pour l'autre.

Mais au lieu de m'écrire à la suite, il m'écrase la ligne.
S'quoi le problème docteur ?
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 juin 2008 à 11:42
Je ne sais pas ... :(

Regarde dans les propriétés du Datagrid si tu as les mêmes que sur ceux de form1 ... ça vient peut être de là.
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 11:51
J'ai enfin pris ton savoir supérieur en vb en défaut.

J'suis content de moi .... mais j'suis bloqué. xD

S'pa grave, je vais bien finir par trouver.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 juin 2008 à 11:57
lol ... je ne connais pas tous les contrôles de vb .... loin de là ...

Sans rire ... fais voir ton code ... je viens de faire un essais et sans rien toucher j'ai bien une liste qui s'affiche ..

;o)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 12:02
Bon, ce que je veux c'est qu'une nouvelle form avec un tableau s'affiche si je choisi M1 par exemple.

J'ai donc dans ModfrmForm1 :
If .Option1.Value = True Then
          sup = MsgBox("Veuillez confirmer le choix du mode de calcul M1", vbInformation + vbOKCancel + 0, "Confirmation")
              If sup = vbOK Then
                  Form1.Enabled = False
                  Form3.Show
               
                  Form3.adoData3.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & bdd
                  Form3.adoData3.RecordSource = "select valeur, Ja from calcul_ligne"
                  Form3.adoData3.CommandType = adCmdText
                  Form3.adoData3.Refresh
              End If


Ensuite dans la Form3, j'ai 2 champs, et quand je clique sur le bouton, je veux qu'ils s'ajoutent :
Private Sub btAjout_Click()
    Form3.adoData3.Recordset![Valeur] = Trim(Me.txtval.Text)
    Form3.adoData3.Recordset![ja] = Trim(Me.txtJa.Text)
End Sub


Si c'est une erreur alakon, t'as le droit de me frapper.

Ps : une valeur s'ajoute (pas à la suite comme je le voudrais, mais elle s'ajoute tout de même), donc pas la peine de me demander si le DataSource a été ajouté ou quelque chose comme ça. ^^
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 juin 2008 à 12:45
Eh p'tite tête ... fastoche ... si tu avais commencé par mettre le code ...

Private Sub btAjout_Click()
    adoData3.Recordset.AddNew
    adoData3.Recordset![Valeur] = Trim(Me.txtval.Text)
    adoData3.Recordset![ja] = Trim(Me.txtJa.Text)
End Sub


;o)

p'tin ... elle rate ça Rikki, c'est dommage ... :DDD
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 13:04
.... -_-"

C'est bien une erreur alakon.

Elle vaut au moins 10 coups de fouets.

Encore une fois merci. :)
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 juin 2008 à 13:08
Si c'est pas indiscret, dans quel cadre tu fais ce zinzin ?
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 13:10
Non ce n'est pas indiscret. ^^

En fait je suis en fin de dernière année de DUT informatique et je devais faire un stage de 11 semaines.
J'avais comme projet de réaliser un site extranet.
Comme j'en avais déjà fais plusieurs ça a été assez rapide.

Et ils ont décidé de me garder pour les vacances pour réaliser ça.
Ça leur enlève du travail et moi ça m'évite de retourner à l'usine. :)
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 juin 2008 à 13:19
ok ok ... merci ...

0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 13:50
J'ai encore besoin de toi. (t'inquiète pas, dans 2 semaines je suis en vacances. :) ).

De quel format est le résultat d'une combo ? (combo.text)

Parce que je veux insérer dans une table ce que je récupère des combo.

J'ai :
If sup = vbOK Then
      sql = ModuleBdD.Ajout(un, deux, trois)
      MsgBox "Création de l'en-tête confirmée"


Et dans ModuleBdD :
Public Function Ajout(un As String, deux As String, trois As String)

    rs.Open "Select * from ent_std", cnx
    CmdSql.CommandText "Insert into ent_std values ( ,'" & un & "','" & deux & "','" & trois & "','','','','','','','','','')"
    CmdSql.Execute , rs
    rs.Update

End Function


Mais il me met type d'argument incompatible sur un dans sql = ModuleBdD.Ajout(un ...)
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 juin 2008 à 13:59
Tu n'as pas besoin de mettre l'emplacement de la clé (autoincrémenté) : Insert into ent_sdt values('" & un & ".....

De quel format est le résultat d'une combo ? c'est format String lorque l'on récupère avec la propriété .Text, si les items de la combo sont numériques, il faut utiliser la propriété .Value ...
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 14:06
Merci de ces précisions.

Mais j'ai toujours un problème de type d'argument ByRef incompatible sur un.

Il ne faudrait pas que je rajoute un ByVal dans la définition de ma fonction ?
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 juin 2008 à 14:08
ah oui exact ... il faut ByVal ... zavais pas voyu cha

0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 14:11
Raaaaa, j'ai rajouté un ByVal rs As ADODB.Recordset mais maintenant l'erreur (qui est la même) est sur deux. :(
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204 > MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011
11 juin 2008 à 14:14
NAAAAAANNNNNNNNN un objet se passe toujours en référence -->>> BYREF ..........
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146 > Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016
11 juin 2008 à 14:17
C'est pas pour ça qu'il n'y a plus d'erreur. xD

L'erreur est de retour sur un.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 juin 2008 à 14:17
Tu es sur de ton code pour Ajouter ???
J'suis pas sûr que ça fonctionne ... :O°
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 14:19
J'suis pas sur non plus.

Je tente, j'invente ... et j'me plante. :D
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 juin 2008 à 14:21
Mais j'avais pas tout vu ............... grrrrrrrrrrrrrrrrrr

Que fait cette fonction dans ModuleBdD ?????????
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 14:22
Ba euhhh ... ça me semblait être le meilleur endroit.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 juin 2008 à 14:27
Sacrilège ........

Non ce n'est pas une méthode du module BdD.... cette fonction appartient au module qui déclenche l'ajout ...

Va falloir que je parle à tes profs mouai ... mdrrr

0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juin 2008 à 14:31
C'est la première fois que je touche au vb. -_-"

M'enfin tu peux aller les voir, ils sont mauvais.
L'année dernière (donc en première année, c'est un ami qui expliquait des choses aux profs.).
Sachant qu'ils sont censés être docteurs. Ça fait peur quand même.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204 > MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011
11 juin 2008 à 14:36
C'est justement pour leur dire qu'ils sont mauvais .... XD

Ca n'a rien avoir le langage ... c'est une question d'architecture, de lisibilité et facilité pour la maintenance ... c'est vraiment la base de tous les langages informatique ...

Mais bon on s'éloigne du sujet ... As-tu trouvé comment faire pour ajouter un élément dans ta base ?
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146 > Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016
11 juin 2008 à 14:48
Non. :'(

Dans ma form1 j'ai :
Dim un, deux, trois As String
    Dim rs2 As ADODB.Recordset
    Dim vrai As Boolean
Set rs2 = New ADODB.Recordset
vrai = ModfrmForm1.Ajout(rs2, un, deux, trois)


Et dans ModfrmForm1 (j'espère que c'est bien là qu'il fallait l'ajouter), j'ai :
Public Function Ajout(ByRef rs2 As ADODB.Recordset, un As String, deux As String, trois As String)

      rs2.Open "Select * from ent_std", cnx
      CmdSql.CommandText "Insert into ent_std values ('" & un & "','" & deux & "','" & trois & "','','','','','','','','','')"
      rs2.Open
      rs2.Update
      
End Function
0