Tuto VB/Access

MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   -  
Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention   -
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

Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Oui mais tu ne passes pas ta 1ère requête à la base donc, tu ne récupères pas l'id ...
Testes avec cette requête :

Dim Query As String
Query = "SELECT LIB_Sujet FROM ENT_STD where id_std = "
Query = Query & "(Select id_std from ent_std where lib_verbe ='" & Combo1.Text & "')" 
Vrai = ModuleBdD.OpenRecordset(Query, sujet)
...


C'est fait à la volée, sans filet ... peux pas tester ici .. :oS

;o)
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
EDIT : ça fonctionne.
Je suis stupide, c'est tout. ^^
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention  
 
Mmmm, ça fonctionne sauf si il y a plusieurs verbes identiques par exemple.

Récupérer l'id va poser problème je pense.

Ex :
Id - verbe - sujet ...

1 - couper - fil
2 - couper - sac

Là il ne va récupérer que fil, non ?
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention  
 
dans la première requête il va récup 2 lignes effectivement ...

Si tu veux que le verbe ou le sujet ou le complement soit unique, il faut une table avec un identifiant par table et une table qui va lier les 3 autres ...

Table Verbe (Id_Verbe, verbe)
Table Sujet (Id_Sujet, sujet)
Table Complement (Id_Complement, complement)
Table Phrase(Id_Phrase,Id_Sujet, Id_Verbe, Id_Complement)

Il y a donc toute les chances qu'un sujet soit lié à un seul verbe et à un seul complément, idem pour un verbe et pour un complément, en ayant toutes les combinaisons possibles dans la table Phrase ... pas ça peut être ?

0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention  
 
En fait non, je ne veux pas spécialement que ces champs soient uniques.

Je veux juste pouvoir les récupérer. ^^
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention  
 
dans la table phrase l'id_verbe pourra être dupliqué sans problème et tu peux l'avoir x fois dans la table. Seule la clé primaire est unique, les clés secondaires ne sont pas unques ^^
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
j'avais bien compris ça :o) et je pensai qu'avec une requête imbriquée ça marcherait :-s ...

Tu peux également fait une variable qui récupère ta première requête :

Dim myId As Integer
Dim query As String
Dim rs As ADODB.RecordSet

   query = "SELECT id_std FROM ENT_STD WHERE lib_verbe ='" & Combo1.Text & "'"
   set rs = New ADODB.Recordset
   Vrai = ModuleBdD.OpenRecordset(Query, rs)
   myId = rs.Fields(0)
   set rs = Nothing

  query = ""SELECT LIB_Sujet FROM ENT_STD WHERE id_std =" & myId
  set rs = New ADODB.Recordset
  Vrai = ModuleBdD.OpenRecordset(Query, rs)
  Vrai = ModuleBdD.RSLirePremier(sujet)
      While Vrai = True
         Combo2.AddItem sujet.Fields(0)
         Vrai = ModuleBdD.RSLireSuivant(sujet)
     Wend
...

enfin j'espère ..

;o)
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
J'suis désolé de t'embêter, mais ça ne marche pas.

J'ai défini vrai en tant que boolean. C'est peut être là que ça coince ?
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
ça bloque où ? as-tu un message d'erreur ?
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
Non pas de message d'erreur, mais je n'ai pas de valeur dans ma combo.

Tout à l'heure ça marchait quand je n'avais pas de doublon dans la table mais maintenant que j'en ai ajouté, ça ne m'affiche plus rien. :S
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
ça veut dire que ta requête ne retourne rien alors ... où qu'il y a eu un problème dans le passage vers la base.

Mets un point d'arrêt sur vrai = ModBdd.OpenRequête(query, rs) et passe le code pas à pas (F8) pour voir s'il y a une erreur dans la fonction OpenRequete() .. Regardes au niveau de If Err.Number <> 0 then ...



0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
J'ai trouvé l'erreur (enfin je crois).

Set rs = New ADODB.Recordset
   vrai = ModuleBdD.OpenRecordset(Query, rs)
   vrai = ModuleBdD.RSLirePremier(sujet)
   While vrai = True


Au niveau du 2eme vrai, il passe dans
If err <> 0 Then
        RSLirePremier = False
        Exit Function
    End If


Et quand je passe la souris sur la ligne

vrai = ModuleBdD.RSLirePremier(sujet)

Il me met vrai = "faux".

Ps : pratique les points d'arrêt et F8, je ne connaissais pas. ^^
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention  
 
Le premier vrai te renvoie "vrai" alors ... mets juste dessous le premier vrai :
MsgBox rs.RecordCount
si c'est zéro, normal que le 2ème retourne "faux"
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention  
 
Ça me retourne -1. ^^
0
Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention   180 > MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention  
 
-1 = vrai
0 = faux
null = ... null.

Donc, vrai :)
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention  
 
Mais là -1 = faux.
0

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

Posez votre question
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Peux tu mettres ça dans RSLireSuivant(byRef rs as adodb.Recordset) as boolean, stp ?

If err <> 0 Then
   RSLirePremier = False
   MsgBox Err.Numbre & ": " & Err.Description
   Exit Function
End If
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
Oula, j'ai une erreur de compilation :

"un appel de fonction sur la partie gauche d'une affectation doit renvoyer un type variant ou object".
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention  
 
pfffff je suis à l'ouest là ... c'est dans RSLirePremier .... dsl
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention  
 
Fonctionne toujours pas.

Euh ... je veux bien te l'envoyer en pièce jointe, mais je ne peux pas sur CCM, si ?

Ps : j'suis boulet jusqu'au bout. :)
0
Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention   180 > MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention  
 
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention  
 
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Sinon autre solution ... fais passer ton zinzin zipper avec la base par cjoint et je regarde ce soir.
0
Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention   180
 
T'es sacrement touché par son problème dis-donc :DD
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention  
 
Il est plus sympa que toi, s'tout.

Ps : meuhh non, c'est pas moi, c'est quelqu'un qui me ressemblait et qui est parti en courant. :)
0
Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention   180 > MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention  
 
Il est plus sympa que toi, s'tout.


OO ! Genre !!
Sale crevard T.T

*boude*
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention  
 
ben j'aime bien aider ... :o)) et aller au bout des choses aussi :DDDD
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention  
 
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
c'est les doublons qui te gène ? parce que chez moi j'ai les 3 combos qui sont remplis ...

0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
Ouaip.

Si je n'ai qu'un de chaque (verbe, sujet, complement), la première méthode fonctionne.
Mais depuis que j'ai 2 verbes identiques ..., ça ne m'affiche plus rien

EDIT : erf, si je prend un verbe qui n'a pas de doublon, ça ne marche pas non plus. :(
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bon je ne peux pas ouvrir Access ici ... je regarde ça ce soir, il faut que j'y aille là ... j'ai une réu

:S

Kisssouu Rikki

Bye MrSlave à demain

Bonne soirée à vous deux.

;o)
0
Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention   180
 
Bonne soirée Polux :)
Repose-toi bien aussi, parce que MrSlave va t'embêter toute la journée de demain


:D
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention  
 
Je compte sur toi pour me soutenir ... massages et tout et tout

;o)
j'y go j'suis à la bourre
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention  
 
Même pô vrai.

Demain à 16h j'ai terminé. :)

Bonne soirée à toi Polux et merci encore de ta patience et de ton aide.

Bon, me reste 10min moi.
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
Bonjour à tous ceux qui passeront ici. :)
0
Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention   180
 
Yop :p

Prêt à embêter Polux ? :D
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention  
 
J'aimerais pas qu'il s'ennuie. ^^
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Hello,

Mes hommages du matin ... Comment vous allez bien ... ?

Je te passe le fichier que j'ai "un peu" modifié : https://www.cjoint.com/?gkiKTAf4ux

Remets le chemin de ta base dans ModuleBdD. J'ai juste le temps d'aller boire un café et je file en réunion ... je reviens vers 10 h.

N'hésites pas à laisser tes questions ici ...

M'a fallu 2 aspirines pour tout comprendre ...

nan, je rigole ... ca ferait tellement plaisir à Rikkitounette ...

;o)

0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
Tu es fort, très fort. :)

Merci
0
Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention   180
 
nan, je rigole ... ca ferait tellement plaisir à Rikkitounette ...

Dommage :)

'Jour Polux, j'espère que tu vas bien, et bien réveillé ^^.

PS MrSlave : Non Polux est pas siii fort que ça, c'juste toi qui est un peu nul >:)
(C'est pas contre toi hein Polux :D)
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention  
 
Je lui ai passé un truc simple (qui ne marchait pas je suis d'accord, mais simple), et il me rend un truc qu'il va falloir que j'assimile.

Je comprend à peine à quoi sert un module et v'la qu'il y en a 3. ^^
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bon la réunion est annulée ... veulent pas faire leur boulot, moi je m'en fous, je suis pas pressé et je suis quand même payé et plus ça dur, plus je gagne d'argent ... :DDDD (petite parenthèse)

et il me rend un truc qu'il va falloir que j'assimile. mais qui fonctionne... lol

Pour ce qui est des modules, ce n'est en fait que l'équivalent d'une classe (pour faire simple) et ça permet de ne pas mélanger les torchons avec les petites cuillères.

Je vais pas te faire un cours sur l'architecture d'une application, mais en règle générale, on a trois couches. La couche supérieure qui reçois les données (l'interface utilisateur par exemple) où l'on saisie et remonte les données. La couche intermédiaire qui manipule les données (là on conditionne les données) soit en saisie, soit en affichage et la couche inférieure qui fait la liaison avec la source de données (fichiers ou base de données ...). Tu peux également avoir des sous couches. Une couche peut être composée d'un ou plusieurs modules. Il y a toujours un ou plusieurs modules qui font la liaison entre les divers couche.

Ce type d'architecture permet d'avoir des modules indépendants. Dans ton zinzin, j'ai fait un module qui gère ton formulaire Form2 que j'ai nommé ModfrmForm2. Et j'ai fait un module intermédiaire qui gère les données ModESEnt_STD. Ce module gère les données de la table ENT_STD. Il n'est pas complet, je n'ai pris que les données dont j'avais besoin. Mais tu dois le compléter pour prendre en compte tous les champs de la table. Tous les appels à la base font par le module ModuleBdD et ce module peut être utiliser par tous les autres modules. De même le module ModESEnt_STD peut être utilisé par tous les autres modules qui ont besoin des données de cette table.

Je te laisse digérer ça doucement ... je retourne boire un café et je vais remonter quelques bretelles et je re ...

;o)

PS: Rikki, prend des notes ... je vais pas répéter :DDDD
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
Heureusement que j'ai du café. :)

Mais bon, je crois avoir compris l'essentiel.

Par contre, il y a un truc pour lequel je ne suis pas sur.
ReDim Preserve myId(nb)

D'après ce que j'ai vu, ça servait à redimmensionner un tableau, alors qu'ici tu l'utilise avec un long.

Bon et je comprend pas pourquoi il ne me charge plus rien dans mon Datagrid.
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai mis un type "Long" tout simplement pour anticiper sur le nombre d'enregistrement. Tu n'as qu'une dizaine de ligne aujourd'hui, rien ne dit que tu n'auras pas plus de lignes que peut supporter un Integer...

Je n'ai pas touché au datagrid ... qui ne m'affichait rien d'ailleur. Je voulais revoir aussi ta form1 mais équipe de france oblige ...

;o)

0
Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention   180 > Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention  
 
0 - 0 contre les Roumains, sont tout nases ^^

*mode HS OFF*
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention  
 
Premièrement vous avez fait quoi les Suisses ?
Deuxièmement, durant les qualifs, les Roumains ont fini devant les Pays Bas et leur ont même infligé une défaite.

Troisièmement, j'ai résolu mon erreur. C'était le champ DataSource qui n'était pas renseigné dans le Datagrid.

Et pour finir, je me demandais comment recharger une form.
Parce que si je met un bouton annuler, je pensais que form.hide et form.show suffiraient mais apparement non, car il garde en mémoire ce que j'avais déjà fait.
J'en conclu que hide et show ne servent qu'à cacher et montrer (d'où leurs noms ^^).
J'ai voulu me servir de unload et load mais ça ne fonctionne pas.

Donc je me demandais si vous aviez une solution. :)
0
Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention   180 > MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention  
 
Pas compris

Tu veux faire quoi, rafraichir ton form ? Fait longtemps que j'ai pas touché à du VB pur, oublie pas...
Si tu veux rafraichir, je vois pas l'utilité du bouton annuler ... ?!

Enfin, y a pas une fonction Requery ou je ne sais plus quoi ? Ma mémoire me fait défaut... Je crois qu'il faut utiliser un Requery...
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
il faut utiliser Unload ... qui permet de libérer la mémoire utiliser par la form ... effectivement hide ne fait que masquer. Ensuite il faut relancer avec show qui lance et passe par le Form_load() du formulaire.

;o)
0
Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention   180
 
Bon, bon, moi e tmon bricolage, on va se rhabiller... :DD
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
Unload Me
      Form1.Show


Mais j'ai toujours mes combo de enabled. :'(
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention  
 
moi e tmon bricolage, on va se rhabiller
Tu nous charries là ??? avoue ?

:oP
0
Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention   180 > Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention  
 
Euh ... ?
Non, pourquoi ?

'Fin faut pas voir d'annotation perverses là dedans hein, rohlàlà.
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention  
 
Ben c'est toi qui a commencé ... nanméhola ...
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
D'ou l'interet d'avoir un module à part avec des fonctions pour chaque chose :o).

Regarde le code de ModfrmForm2. Tu as une procédure initCombo1 ... (j'ai d'ailleur oublié de faire un combo1.Clear) ...

Pour remettre la form dans son état initiale, il suffit de faire une procédure du genre :
Public Sub MaZ_Form
With Form2
   .Combo1.Enabled = True
   .Combo2.Enabled = True
   .Combo3.Enabled = True
   .Combo1.Clear
   .Combo2.Clear
   .Combo3.Clear
   .Text1.Enabled = True
   .Text2.Enabled = True
   .Text1.Text = ""
   .Text2.Text = ""
End With

InitFrm
End Sub
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
Après un peu de tripatouillage, ça fonctionne. :)

Maintenant, la suite.


Euh .. les recordset servent à récupérer un ensemble d'élément ? Donc si on ne veux récupérer qu'un seul élément, on peut le faire directement ?
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention  
 
récupérer qu'un seul élément

tu veux dire un champ de la table ?
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention  
 
Voui.

Parce que je vais avoir des valeurs fixes, mais qui pourront évoluer. Donc plutôt que d'aller les insérer dans le code, je vais les mettre dans la table.
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention  
 
Dans ce cas tu as 2 possiblités :

La propriété Fields du recordset renvoie le contenu d'un champ. Tu peux soit donner le nom du champs (ce qui est recommander si ta table est susceptible dévoluer) ou bien en indiquant de numéro du champ, sachant que le premier champ est zéro:

Table maTable (Id_matable, monChamp1, monChamp2)

myRecordset.Fields("monChamp1") ou myRecordset.Fields(1) pour le deuxième champ de la table. Ici myRecordset renvoie la même valeur.

;o)
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
Je viens de passer 5min a essayer d'ajouter des valeurs fixes pour un combobox.
Je crois avoir testé toutes les manières possibles. xD

Mais bon, ça fonctionne c'est le principal. :)
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Apéro alors ?

:o)
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
Oh wiiiiiiiiii.

Je vais chercher les kaouètes.
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
Atta, j'ai encore une question. :P

Est ce qu'il est possible de trier les valeurs du Datagrid ?
J'ai voulu les trier lors de l'appel avec un ORDER by mais ça me les met à la suite, sans tri.
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
je sais pas, je regarderai cet aprem

Bon app à vous deux.

;o)
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention  
 
Bon appétit à vous deux également.

Revenez frais et dispo. :)
0
Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention   180 > MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention  
 
Encore à la bourre moi

J'espère que vous avez bien mangé.
Allez j'me traine avec du Daft Punk dans la tête, ça va l'faire.
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention  
 
tu vas encore dire que c'est nous qu'avons l'esprit tordu là aussi :Encore à la bourre moi
0
Rikkunter Messages postés 6023 Date d'inscription   Statut Membre Dernière intervention   180 > Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention  
 
Pfff mais arrêtez enfin avec votre esprit tordu ! Tout ça pour un oubli de virgule...
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
Raaaaaa. S'quoi ça ?

conca = Combo1.Text & " - " & Combo2.Text & " - " & Combo3.Text

      If (Me.txtLibelle.Text <> "" Or conca <> "" And Me.txtPosAff.Text = "") Then
       sup = MsgBox("Veuillez remplir le champ : position de la séquence", vbCritical + vbOKOnly + 0, "Position Séquence")
       Exit Sub
    ElseIf (Me.txtLibelle.Text = "" Or conca = "" And Me.txtPosAff.Text = "") Then
       sup = MsgBox("Vous devez renseigner les champs", vbCritical + vbOKOnly + 0, "Position Séquence")
       Exit Sub
    ElseIf (Me.txtPosAff.Text <> "" And Me.txtLibelle.Text = "" Or conca = "") Then
       sup = MsgBox("Tous les champs ne sont pas renseignés", vbCritical + vbOKOnly + 0, "Position Séquence")
       Exit Sub
    End If


Sachant que j'ai 2 champs texte (txtLibelle et txtPosAff et 3 combo.
Je veux que soit txtLibelle ou les 3 combo concaténée et txtPosAff soit non vides pour passer à l'étape suivante.

Mais ça ne fonctionne pas du tout.

Si je ne met rien du tout, il me met :
Veuillez remplir le champ : position de la séquence. Oô
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
"conca" n'est jamais vide là ... ???
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention  
 
Mais putain j'suis trop con.
Normal qu'il ne sera jamais vide vu que j'ai les -

'tain mais quel abruti. :(

Merci.
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention  
 
et comment tu sais que les 3 combos ne sont pas vides ? il faut faire un test aussi sur chaque combo, parce que 2 combos sur 3 remplis et hop "conca" n'est pas vide ... pas top
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention  
 
En fait j'ai changé.
J'ai mis le bouton qui va valider en Enabled = false.

Et je le met à true si on écrit quelque chose dans le champ txtlibelle ou si la valeur du 3eme combo a été changée.

Après il ne me reste qu'à mettre une condition pour voir si le champ txtPosAff est rempli.

C'est plus simple.
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention  
 
c'est pas faux ...

'tin fait chaud ici aujourd'hui ...

0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Heu j'ai besoin d'un café là ... mon neurone est sur la digestion ..

;o)
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
/me va chercher une cafetière. :)
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
Euh .... siouplait. ^^

Je dois récupérer un ID grâce au verbe + sujet + complément.

Imaginons ma table :

Id - verbe - sujet - complement
1 - couper - fil - avec pince
2 - couper - sac - sans pince

Ma première combo va m'afficher couper.
Me deuxième fil et sac (disons que je choisisse sac)
Et ma troisième sans pince.

Il faut que je récupère l'ID dont le verbe est couper, le sujet sac et le complement sans pince.

Ma requête sera "Select id_std where verbe = " & combo1.text & " sujet ....

Mais comment je l'utilise ? :\

J'ai bien vu le post 176 de Polux mais c'est assez embrouillé.

J'suis désolé de vous prendre tant de temps, mais sans moi vous ne sauriez pas quoi faire. :)
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
mais sans moi vous ne sauriez pas quoi faire

T'inkiètes ... on me trouve pas mal d'occupation ici ... mais rien de passionnant pour l'instant. Et ils font pas leur boulot, moi je peux pas avancer ...

;o)
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Donc ici tu auras :

myId = myRecordset.Fields("Id_Std")

Fait attention dans tes requêtes SQL ... les chaînes de caractères doivent être entre simple côte ... :

query = "Select id_std From Ent_STD where Lib_verbe =  '" & combo1.text & "' _
        And Lib_sujet = ' "  & combo2.text & " ' And Lib_Complement = ' " & combo3.Text & " ' "


;o)
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
Mais comment sera fait le lien entre la requête et myId = myRecordset.Fields("Id_Std") ?
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention  
 
par le module ModESEnt_STD

Admettons que tu veuilles mettre l'Id_Std dans un textbox (txtID_STD)
Tu places ce code dans le module sus cité :
Public Function SearchIdByMultiCritere(byval verbe As String, Byval sujet As String, Byval complement As String) As Boolean
Dim query As String
Dim rs As ADODB.Recordset
Dim Vrai As Boolean

   query = "Select id_std From Ent_STD where Lib_verbe =  '" & verbe & "' _
        And Lib_sujet = ' "  & sujet & " ' And Lib_Complement = ' " & complement & " ' "
   Set rs = New ADODB.Recordset
   vrai = ModuleBdD.openRequete(query, rs)
   If vrai = False Then
      SearchIdByMultiCritere = False
      Exit Function
   Else
     Call fillStruct(rs)
     SearchIdByMultiCritere = True
  End If

End Function

Dans le module qui a besoin de l'Id_Std tu colles ce code dans l'évènement qui va bien:

Dim vrai As Boolean

   vrai = ModESEnt_STD.SearchIdByMultiCritere( combo1.text, combo2.text, combo3.text)
   If vrai = False Then
      MsgBox "Erreur blablabla",vbexclamation,"Erreur"
      Exit Sub   'ou Exit Function selon
   Else
      txtID_STD.Text = ModESEnt_STD.getIdStd
   End If


Et là tu as un truc propre, digne d'un pro :DD

;o)
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention  
 
Je crois que je suis en train de couler.

Faut que je revois 2/3 truc avant de te demander autre chose. xD
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147 > Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention  
 
Tu es sur que c'est bon ça :

vrai = ModuleBdD.openRequete(query, rs)
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention  
 
c'est vrai que j'ai zappé les commentaires dans ce que je t'ai donné ... mais foot oblige. En gros je t'explique :

Comme je t'ai expliqué ce matin, j'ai décomposé en 3 couches une partie de ton appli. Le module ModESEnt_STD fait la communication entre la base de données (via le module ModuleBdD) pour récupérer ou pour enregistrer les données. J'ai fait une strucutre (TabEnt_STD) qui est en fait l'équivalent de ta table. Cette structure accueille les données de la table via le recordset. On place dedans toutes les méthodes dont on a besoin pour notre application pour communiquer avec la base de données. On pourrait y mettre une méthode pour enregistrer des données, les modifier ou les supprimer.
Le module ModfrmForm2, manipule les données pour les mettre dans les champs de l'interface (form2) et communique avec ModESEnt_STD. Si on avait des calculs à faire sur les données, c'est dans ce module qu'il faut les gérer.

De cette façon, c'est plus simple de travailler, chaque module est affecté à un travail bien précis avec des outils qui lui sont propres. S'il en manque un, on l'ajoute dans le module qui va bien.

épicétou ... :o)
0