hic8716
Messages postés16Date d'inscriptionmercredi 30 avril 2008StatutMembreDernière intervention28 juillet 2011
-
30 avril 2008 à 14:25
CarSoftAja
Messages postés26Date d'inscriptionlundi 5 mai 2008StatutMembreDernière intervention21 mai 2008
-
10 mai 2008 à 11:50
bonjour tt le mende j'éspère ke vous allé m'aider sur ce probleme!! je vé etre bref
jé créer une base de données avec access pour faire une gestion de stock. jé 4 champs le nom du composant'reptop),la carte ou il se setue(carte), l'idantifiant, et le tiroir ..
mon probleme et ke jé des ncomposant samblables dans des cartes différentes (c0 se trouve dans les deux cartes) et kand je fé la recherche il m'affiche ke le premier composant enregistré dans la base de données.
voila le code
Private Sub Command1_Click()
Dim name As String
Dim prompt As String
Dim title As String
'Dim S As String
Dim y As String
prompt = "entrer le nom du composant "
title = "recherche"
y = InputBox(prompt, title)
If Len(y) = 0 Then
Exit Sub
Else
name = y
S = "reptop1='" + y + "'"
Data1.Recordset.FindFirst S
If Data1.Recordset.NoMatch Then
MsgBox "le nom n'existe pas "
Else
If List1 = "ambre" Then
Data1.RecordSource = "select[*ALL]from Table1 where carte=ambre and reptop=y"
Text1.Text = Data1.Recordset![reptop1]
Text2.Text = Data1.Recordset![identifiant]
Text3.Text = Data1.Recordset![carte]
Text4.Text = Data1.Recordset![tir1]
elseif List1 = "emeraude" Then
Data1.RecordSource = "select[*ALL]from Table1 where carte=emeraude and reptop=y"
Text1.Text = Data1.Recordset![reptop1]
Text2.Text = Data1.Recordset![identifiant]
Text3.Text = Data1.Recordset![carte]
Text4.Text = Data1.Recordset![tir1
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 30 avril 2008 à 14:56
Re,
Voila de la couleur et plusieurs petite correction..
Private Sub Command1_Click()
Dim name As String
Dim S As String
Dim y As String
y = InputBox("entrer le nom du composant ", "recherche")
If Len(y) = 0 Then Exit Sub
name = y
S = "reptop1='" & y & "'"
Call Data1.Recordset.FindFirst(S)
If Data1.Recordset.NoMatch Then
MsgBox "le nom n'existe pas "
Else
If List1 = "ambre" Then
Data1.RecordSource = "select[*ALL]from Table1 where carte='ambre' and reptop='" & y & "'"
Text1.Text = Data1.Recordset![reptop1]
Text2.Text = Data1.Recordset![identifiant]
Text3.Text = Data1.Recordset![carte]
Text4.Text = Data1.Recordset![tir1]
ElseIf List1 = "emeraude" Then
Data1.RecordSource = "select[*ALL]from Table1 where carte='emeraude' and reptop='" & y & "'"
Text1.Text = Data1.Recordset![reptop1]
Text2.Text = Data1.Recordset![identifiant]
Text3.Text = Data1.Recordset![carte]
Text4.Text = Data1.Recordset![tir1]
Else
Call MsgBox("pas de chance")
End If
End If
End Sub , ----
[code.aspx?ID=41455 By Renfield]
Relis ton code il y a des incohérences
<ol><li>reptop1 puis reptop ? NORMAL OU PAS?</li><li>Parfois tu entour les champs par '...' parfois pas normal ou pas?
</li></ol>
hic8716
Messages postés16Date d'inscriptionmercredi 30 avril 2008StatutMembreDernière intervention28 juillet 2011 30 avril 2008 à 15:03
merci pour ta réponse . oui j'ai fais des fautes : il y'a seulement le reptop et y'a pas les ' ' sur les mnoms des cartes .je n'ai pas access alors je peux pas testé ici. mé est ce ke ta bien compris mon problème?
Vous n’avez pas trouvé la réponse que vous recherchez ?
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 30 avril 2008 à 15:07
Re,
Lorsqu'on te dit d'éviter le SMS c'est pas pour rien...
Alors non je n'ai rien compris à ton problème.
Peu être devrais tu faire une boucle pour récupérer TOUS les champs.
hic8716
Messages postés16Date d'inscriptionmercredi 30 avril 2008StatutMembreDernière intervention28 juillet 2011 30 avril 2008 à 15:18
oui c'est ce que je pense!! je vais bien expliqué mon problème
je choisis une carte sur la liste soit'emeraude'ou'ambre' je clique sur le boutton recherche pour chercher un composant dans l'une des cartes choisi dans la liste.
ma base de donnees access
reptop carte identification tir
c0 emeraude ma 22
c0 ambre mo 23
c1 emeraude ka 24
c1 ambre do 25
si je recherche le composant c0 avec la carte emeraude ca marche
si je rechreche le c0 avec cla carte ambre ca marche po
hic8716
Messages postés16Date d'inscriptionmercredi 30 avril 2008StatutMembreDernière intervention28 juillet 2011 30 avril 2008 à 15:45
je pense que le problème vient des noms des compsants (reptop) parceke kand je change le nom du composant c0 par exemple ca marche! le truc c que kand j'appuie sur boutton recherche il cherche le premier composant ki a ce nom mais je sais pas comment régler ce détail
CarSoftAja
Messages postés26Date d'inscriptionlundi 5 mai 2008StatutMembreDernière intervention21 mai 2008 10 mai 2008 à 11:50
Salut,
Pour ma part je simplierais en me passant du code. En effet, pourquoi compliquer quand on peut faire simple.
Je créerais sur mon formulaire:
1 liste déroulante "ListeComposant"
Origine source: Table/requête
Contenu: SELECT DISTINCT Table1.reptop FROM Table1; (DISTINCT sert à n'afficher que 1x le même élément)
1 liste déroulante "ListeCarte"
Origine source: Table/requête
Contenu: SELECT DISTINCT Table1.carte FROM Table1;
1 bouton qui exécutera la requête de recherche après la sélection des éléments dans les listes (mise à jour d'un sous-formulaire, traitement d'un recordset basé sur cette requête, affichage d'un état basé sur cette requête, etc...)
Ensuite il faut créer la requête qui doit afficher tous les champs de Table1 et mettre les critères suivants:
- Pour le champ [carte] mettre dans la ligne critères:[Forms]![NomDeTonFormulaireAvecLesListes]![ListeCarte]
- Pour le champ [composant] mettre dans la ligne critères:[Forms]![NomDeTonFormulaireAvecLesListes]![ListeComposant]
Le code SQL de la requête doit donner quelque chose comme:
SELECT Table1.*, Table1.carte, Table1.reptop FROM Table1 WHERE (((Table1.carte)=[Forms]![F_CarteComposant]![ListeCarte]) AND ((Table1.reptop)=[Forms]![F_CarteComposant]![ListeComposant]));
Le résultat de la recherche se trouve donc dans cette requête. A toi de voir comment exploiter ce résultat, en mettant par exemple un sous-formulaire (qui serait basé sur cette requête) dans ton formulaire principal, ou alors lire le résultat de cette requête avec un Recordset.