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 Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011 - 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

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
5 juin 2008 à 12:13
Bonjour,
déjà pour access..
https://mhubiche.developpez.com/Access/cours/bases/
A+
EDIT:
J'ai retrouvé ca .. pour VB6
https://vb.developpez.com/cours/
1
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
5 juin 2008 à 13:06
Je les avait trouvés mais merci quand même. ^^
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
7 juil. 2008 à 16:37
Je te remercie mais ça fait 1 mois que j'utilise ce tuto en plus de certains autres. ^^

Et puis j'ai l'aide du master Polux, en cas de pépins, donc tout vas pour le mieux.
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
11 juil. 2008 à 08:38
Salut Polux. :)

(plus de 615 posts quand même).

Comment ça va bien ?
Prêt pour un we de 3 jours ?

Dis, est ce que tu t'es déjà servi d'ArrayList ?

J'ai éssayé de faire comme indiqué ici : https://plasserre.developpez.com/cours/vb-net/
J'ai donc mis : Imports System.Collections en haut de mon module et Dim L As New ArrayList() en tant que variable globale.

Mais je ne peux pas m'en servir. :S

La définition de la variable ne passe pas.

P'tet une petite idée ? :)
1
1
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
16 juil. 2008 à 19:50
ah ben voui ... ça c'est des liens utiles ... un grand grand merci

;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
5 juin 2008 à 13:11
Bonjour,

Tu cherches quoi au juste comme info ?? Quelles sont les points qui posent problèmes ?? On peut peut être te filer des tuyaux ...

;o)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
5 juin 2008 à 13:20
Comme je l'ai dit précédement, je n'ai jamais utilisé ni le vb, ni Access.

Je commence à comprendre l'ajout de méthodes sur les différents élément d'un form (bouton ...). Parce qu'après tout c'est de l'objet. :)

Donc pour commencer, j'aimerais pouvoir me co à une base et récupérer des données.
C'est la partie relation entre vb et access qui me pose des problèmes.
0
Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011 180
5 juin 2008 à 13:22
Google copain !!

Ahaha, je dis ça juste pour t'embêter.
Access... Bienvenue au Club MrSlave.
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
5 juin 2008 à 13:34
Raaaaaaaa foutu moteur de recherche suisse. xD
0
Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011 180 > MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011
5 juin 2008 à 13:38
Rooooooh râle pas xD
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
5 juin 2008 à 13:37
Elle est taquine Rikki ....

Voilà un module pour se connecter à une base Access. Il faut ajouter la référence Microsoft ActiveX Data Objects x.x Library ...

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

Reviens me voir si tu as un blème.

;o)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
5 juin 2008 à 13:54
Je t'aime. :)

Je reviendrais, t'inquiètes pas.
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
5 juin 2008 à 13:58
n'hésite surtout pas.

Bon courage

;o)
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
5 juin 2008 à 14:19
Une p'tite question. :)

Si je met mon script de connexion à la base dans la fonction form_load() pour que la connexion s'effectue dès qu'on charge la page, où est ce que je dois mettre le chemin vers ma base ?
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
5 juin 2008 à 14:31
Fait un module uniquement pour les échanges avec la base, donne lui le nom de ModBdd. Dans le module tu as une variable constante:
Private Const BDD = "c:\maBase.mdb"

Tu remplaces "c:\maBase.mdb" par le chemin et le nom de ta base.

Ensuite dans le Form_Load, rien ne t'empêche de faire :
Sub Form_Load()
   ModBdd.ConnectBdd
End Sub


Evites de mettre du code dans les modules des formulaires. Fait un module par formulaire ainsi qu'un module pour le traitement des données.

J'ai pas d'exemple ici sous la main, mais je vais tacher de te faire passer un petit truc demain pour te montrer comment faire.

;o)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
5 juin 2008 à 14:33
Je teste ça tout de suite.

Merci. ;)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
5 juin 2008 à 15:43
Bien alors je ne voudrais pas trop partir dans de mauvaises directions, alors je vais faire un petit point.

J'ai mon module ModBdd qui contient :

Public Const PathBase As String = "C:\Documents and Settings\RBEN\Mes documents\base_temps.mdb"

Public Sub ConnectBdd()

Set cnx = New ADODB.Connection

cnx.CursorLocation = adUseServer
'Définition du pilote de connexion
cnx.Provider = "Microsoft.Jet.OLEDB.4.0"

'Définition de la chaîne de connexion
cnx.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PathBase & ";Persist Security Info=False;"
cnx.ConnectionString = cnx.ConnectionString

'Ouverture de la base de données
cnx.Open

End Sub


Et pour me connecter à la base dès le lancement de ma page, j'ai mis :

Private Sub Form_Load()

ModBdd.ConnectBdd

End Sub


Pour finir, un petit combobox : (mais il ne fonctionne pas).

Private Sub Combo1_Change()

Dim verb As ADODB.Recordset
Set verb = New ADODB.Recordset

verb.Open "SELECT Verbe FROM test"

combobox1.AddItem verb

End Sub


Est ce que je pourrais avoir un petit coup de main pour le combo, siouplait ?

Merci.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
5 juin 2008 à 15:50
pas mal .... mais c'est pas ça ... dommage ...

Alors il faut pas remplir la combo sur l'évènement Change() de la combo !!! mais par exemple sur le Form_Load ...


Private Sub Form_Load() 
Dim verb As ADODB.Recordset
Set verb = New ADODB.Recordset

ModBdd.ConnectBdd 
verb.Open "SELECT Verbe FROM test" 
While Not verb.EOF
  combobox1.AddItem verb.Fields(0)
  verb.MoveNext
Wend 

End Sub 


J'ai fait ça de tête, je peux pas tester ici

;o)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
5 juin 2008 à 15:54
Je vais éssayer.

Mais alors, le Change() de la combo prendra en compte la valeur qu'on va sélectionner ?
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
5 juin 2008 à 16:03
J'ai une erreur d'éxécution '3709'.
Impossible d'utiliser cette connexion pour effectuer cette opération.
Elle est fermée ou non valide dans le contexte.

Ps : j'ai fini ma journée. Je ne vais plus tarder à rentrer donc pour ce soir, ça va quasiment être bon.

Merci encore pour ton aide.
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
5 juin 2008 à 16:09
ok, a demain ... bonne soirée
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
5 juin 2008 à 16:07
Si tu as copié tout le module que je t'ai fait passer, tu peux aussi faire comme ça

Private Sub Form_Load() 
Dim verb As ADODB.Recordset
Dim query As String
Dim Vrai As Boolean

query = "SELECT Verbe FROM test"
Set verb = New ADODB.Recordset

ModBdd.ConnectBdd 

vrai = ModBdd.OpenRecordset(query, verb) 
vrai = ModBdd.RSLirePremier(verb)
  While Vrai = true
    combobox1.AddItem verb.Fields(0)
    vrai = ModBdd.RSLireSuivant(verb)
  Wend 

End Sub 
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
6 juin 2008 à 08:37
Après modifs, ça marche impec. Merci. :)

Bon je continue et j'enfile mon premier café de la matinée.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
6 juin 2008 à 09:22
Salut,

De rien. Je vais enfiler mon 2ème kawa ... j'ai pas les yeux en face des trous ce matin ... vivement l'apéro

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

Dis moi, y aurait-il une méthode pour bloquer le contenu de la combobox ?
Ex, je choisis toto, je clique sur un bouton, et la valeur de la combobox ne pourra plus être changée.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
6 juin 2008 à 09:46
Je ne sais pas, mais tu peux utiliser une variable globale dans un module. Quand tu cliques sur le bouton tu affectes à la variable la valeur de la combobox, et dans le form_load après avoir rempli la combobox tu rajoutes ça:

ComboBox1.Text = mavariable


0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
6 juin 2008 à 10:28
Impec, avec ça et le combo.enabled ça fait exactement ce que je veux.

Merci à toi (pis à Rikk aussi). ^^
0
Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011 180 > MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011
6 juin 2008 à 11:03
J'trouverai bien une façon dont tu pourras me revaloir ça >:)
Allez, je déconne.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
6 juin 2008 à 10:43
De rien, t'as plus k'à payer l'apéro .. j'aime les kaouètes ...

;o)
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
6 juin 2008 à 10:54
Vu l'aide que tu m'apporte, je peux même en payer plusieurs des apéros. ^^

Euh ... quelle est la différence entre datagrid et flexgrid ?
Apparement la flexgrid ne prend pas en compte les valeurs entrée par l'utilisateur mais il peut les prendre en compte avec un ajout dans le code.

Et quel est le mieux, si je veux en faire un avec une seule ligne mais qui rajoute une ligne dès que je met quelque chose dans la ligne précédente ? (pas très clair ça).

Ex : au début, il y a une ligne.
Si je met quelque chose dans la 1ere ligne, ça me rajoute une 2eme ligne.
...
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
6 juin 2008 à 11:17
Je n'utilise le datagrid et le flexgrid qu'en statique, pour affichage. Et en fait j'utilise le Flexigrid pour ça, pour ne pas autoriser la saisie.

Mais effectivement tu peux l'utiliser en ajoutant un peu de code pour pouvoir faire des saisies. Je ne l'ai jamais fait, mais tu peux trouver des exemples sur : https://vb.developpez.com/faq/?page=Controles et sur https://codes-sources.commentcamarche.net/

Pour ajouter une ligne, le flexgrid est plus facilement manipulable. Dans l'évènement Click() du flexgrid tu peux faire:

MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1

Cette propriété n'existe pas dans le datagrid.

;o)

PS: si l'eau est assez fraîche, pas de glaçon dans le pastaga .. :o))
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
6 juin 2008 à 12:02
Je sais que je suis chiant, mais comment fait on pour écrire dans un datagrid ?
Y a t-il des options à cocher ?
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
6 juin 2008 à 12:17
oula, c'est chiant à faire ... il faut un contrôle ADODC (composant -> Microsoft ADO Date Controls x.x) qu'il faut configurer (clique droit -> propriétés ...). Tu peux le mettre invisible. Ensuite il faut lier le datagrid au controle ADODC avec la propriété DataSource et affecter la table ou la requête Access à la propriété DataMember ...

Pas top à faire.

0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
6 juin 2008 à 13:01
Oula.
Je pensais qu'il était plus simple d'utiliser un datagrid pour faire un tableau dans lequel on puisse écrire mais en fait non.

J'me tate. ^^
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
6 juin 2008 à 13:05
non pas si simple ...
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
6 juin 2008 à 13:24
Ou alors je fais un champs de texte qui récupère ce que j'écris et qui l'ajoute soit à un datagrid, soit à un flexgrid.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
6 juin 2008 à 13:26
Mais alors à quoi te sers le datagrid ou le flexgrid ?
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
6 juin 2008 à 13:31
Ba il ne me servirais plus qu'à afficher ce que j'ai inscris dans le champ de texte. Mais je trouve ça moche.

Il me faut un tableau ou je puisse entrer plusieurs lignes. Alors je cherche la meilleure des solution (ou du moins celle que j'arriverais à mettre en place). ^^
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
6 juin 2008 à 13:38
Je ne comprends pas bien. Tu peux très bien te faire un tableau uniquement avec des champs texte, sans devoir passer par un datagrid ou un flexgrid ... quel en est l'intérêt ? c'est ça que je ne pige pas bien ...

mais bon je te l'ai dit, j'ai pas les yeux en face de trous et mon neurone est en grève depuis ce matin ... :-s
0
Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011 180
6 juin 2008 à 13:42
C'est normal, c'est vendredi ;)

*Suit la conversation depuis le début, si si, rien d'autre à faire*
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204 > Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011
6 juin 2008 à 13:46
et même pas un kawa ... pffffffff tout fout le camp ... j'vous l'dit mouai

(bônjour lâ chuisse)

;o)
0
Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011 180 > Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016
6 juin 2008 à 13:47
J'aime pas le café, mais j'vous en sers si vous voulez :)))

'Jour le freuch :p
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204 > Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011
6 juin 2008 à 13:48
veux bien un T si tu préfères.
0
Rikkunter Messages postés 6021 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011 180 > Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016
6 juin 2008 à 13:51
Deal ;)
Et un café pour MrSlave, privé d'alcool (par moi-même, et puis c'est mauvais quand tu codes :p)
0