netruner666
Messages postés9Date d'inscriptionlundi 12 juillet 2004StatutMembreDernière intervention 1 décembre 2005
-
24 mai 2005 à 20:23
caese
Messages postés9Date d'inscriptionsamedi 5 juin 2004StatutMembreDernière intervention 5 juin 2005
-
28 mai 2005 à 15:53
netruner666
voila, je suis en train de me creer un petit programme pour m'entrainer mais je pense avoir mis la barre un peu trop haut. en effet, j'ai une base client et une base facture.
Grace a l'id de chaque client, je reference leur facture. jusque la pas de soucis.
Là où se trouve mon probleme, c'est lorsque je veux afficher les factures d'un client dans un datagrid ou un listview. JE N'Y ARRIVE PAS!!!
j'ai bien toutes mes factures affichées dans le datagrid mais je n'arrive pas a afficher seulement les factures du client selectionne. En plus je pige que dalle aux requetes SQL. Alors si quelqu'un se sent l'envie de m'aider, il sera alors le bienvenue.
caese
Messages postés9Date d'inscriptionsamedi 5 juin 2004StatutMembreDernière intervention 5 juin 2005 25 mai 2005 à 08:49
Alors si j'ai bien compris ton pb, c juste une histoire de requète (?!)
en fait il faut que tu selectionne tes factures en fonction de ton
client, pour ça il faut que tu chope l'id de ton client quelque part,
par exemple si tu le prend dans un formulaire courant, ça donne en gros
:
SQL = "SELECT baseFacture.facture FROM baseFacture WHERE EXISTS (SELECT
baseFacture.id FROM baseFacture WHERE baseFacture.id LIKE "'&
Me.idClient &"';)"
apres tu charges ça dans ta liste !
sinon, plus simple : tu peu simplement lier tes tables ac l'id mais il faut aussi que tu ai ton id ds le formulaire...
cs_DJTIME
Messages postés39Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention 4 janvier 2008 25 mai 2005 à 09:45
Salut
ce que j'ai a rajouté par rapport a Caese, c'est que si tu t'y connais pas en SQL tu va surement en bavé mais!!!
y a p et bien une petite astuce qui pourrait te guider
Avant de penser a VB, lance ton programme access avec ta base et tes tables
ensuite en créant une requetes avec le mode création qui est simple vu
que c'est graphique et ca se fait en quelques cliques de souris
tu pourras dire quel table rentre en jeux, ensuite faire le lien (qui
en principe et automatique a condition que les deux champs dans les
deux tables on le meme nom et je crois le meme type), et dire quel
champ affiché et de quel tabkes tu veut l'extraire
une fois que ta finis ca tu clique du droit la ou access a mis tes tables et tu choisis MODE SQL:
et hop tu te retrouve avec ta requete fraichement ecrite :)
apres pour passer a des truc genre LIKE (comme te l'as deja dis
caese) ben faudra se documenter y a sur le web de tres bon site
sur ca mais bon ... ca reste une question de volonté est ce que tu veut
vraiment maitrisé ou pas le sujet.
VB6 est un langage magnifiquement beau (je crois que si je continue
bill gates va m'offrir une superbe voiture:) mais a condition de
maitrisé ce qui va avec access et sql en l'occurence si tu veut
utiliser les bases de donnée.
tu vois ce que t'as ecris caese: la requete SQL c'est toujours une ligne du type
SELECT les champs from les tables where condition
Exemple SELECT * FROM TABCLI where nom_client ="dupont";' extraire tous les champs de la tables TABCLI pour le client dupont
ou alors SELECT * FROM TABCLI where nom_client LIKE '%du%';'
extraire tous les champs de la tables TABCLI pour les clients dont le
nom contient "du" ca peut etre dupont durand dumonde dureacuir etc ....
:)
et si je suppose que tu utilise l'ADODC (dont le nom sera par exemple
adodc1) et que tu fait un petit textbox de recherche (le nom sera
text1) tu peut ecrire ca
adodc1.recordsource="select * from tabcli where nom_cli like '% " & text1.text & "%';"
adodc1.refresh
par exemple bien sur je sais pas trop a koi ressemble ton appli
et tu peut rajouter un truc genre
Dim temp as string
temp=replace(text1.text," ","%");
Et tu réecris ta requête en changeant text1.text par temp et si en plus
tu met ca dans l'evenement onkey up ca sera le top parce que c'est en
temps reel genre tu ecris "a" et automatiquement ca ne garde dans la liste que les clients qui ont "a" dans le nom tu ecris "an"
idem ca t'affiche anne, annie, antoine , etc etc... comme dans
les encyclopédie ,bon le code n'est pas exact y a aussi quelques
rectificcations
En esperant que j'ai pas trop dis n'importe koi je te souhaite bonne chance
cs_ITALIA
Messages postés2169Date d'inscriptionvendredi 20 avril 2001StatutMembreDernière intervention30 juin 20099 25 mai 2005 à 11:31
Pour completer DJTIME :
SELECT * FROM NomTable where NomChamp = "dupont" ' Pour les Types Text
SELECT * FROM NomTable where NomChamp = 2 ' Pour les Types Numerique
Nom="Italia"
SELECT * FROM NomTable where NomChamp = '" & Nom & "' ' En Passant par une Variable String
Id=12
SELECT * FROM NomTable where NomChamp = " & Id & " ' En Passant par une Variable Integer
cs_ITALIA
Messages postés2169Date d'inscriptionvendredi 20 avril 2001StatutMembreDernière intervention30 juin 20099 26 mai 2005 à 08:15
Avec Un ListView :
Dim ObjListe As ListItem
ListView1.ListItems.Clear
Set db = OpenDatabase("C:\MaBase.mdb") ' Définition base de donnéeSet ChoixLign db.OpenRecordset("SELECT * FROM Lignes WHEREDesignation '" & Combo1 & "'")
If ChoixLign.RecordCount <> 0 Then ' Juste une Ligne
Do Until ChoixLign.eof
Set ObjListe = ListView1.ListItems.Add(, , "")
ObjListe.SubItems(1) = Combo1
ObjListe.SubItems(2) = ChoixLign ("ReferenceDemande")
ObjListe.SubItems(3) = ChoixLign ("DateDemande") & " " & ChoixLign ("HeureDemande")
ChoixLign.Movenext
Loop
End If
Set ChoixLign = Nothing
Set db = Nothing
It@li@
Vous n’avez pas trouvé la réponse que vous recherchez ?
netruner666
Messages postés9Date d'inscriptionlundi 12 juillet 2004StatutMembreDernière intervention 1 décembre 2005 25 mai 2005 à 21:27
netruner666
Merci a tous, maintenant je vais essayer. C'est vrai que coté SQL, je n'y connais rien... mais bon, je vais m'y atteler. Maintenant il me vient une autre question: une fois les informations desirees récuprées, comment fait- on pour les inserer dans un formulaire sous forme de tableau et les imprimer car j'ai bien essayer, mais cela me donne des trucs horribles.
caese
Messages postés9Date d'inscriptionsamedi 5 juin 2004StatutMembreDernière intervention 5 juin 2005 28 mai 2005 à 15:53
Sinon tu peux aussi le faire sous forme d'état, c'est plus simple, t'as pas besoin de te galérer avec du tas de code en vb, tu le fais simplement avec assistant de création d'état, là y'a qu'à suivre les instruction. il te le met sous forme de tableau tout seul. apres, pour l'imprimer, tu peu le faire depuis un formulaire avec un bouton et pareil ac l'assistant tu fait opération sur état et imprimer l'état !
voilà !
Caese