[VB 6.0] DataSource [Résolu]

cs_med_ali 23 Messages postés vendredi 18 mars 2005Date d'inscription 2 avril 2011 Dernière intervention - 13 sept. 2005 à 18:48 - Dernière réponse : Doro81079 398 Messages postés vendredi 22 avril 2005Date d'inscription 24 février 2015 Dernière intervention
- 14 sept. 2005 à 00:24
à une même zone de texte "Text1" est affecté deux champs de deux table différentes selon la recherche effectué.Le problème est le fait que la propriété "DataSource"
n'autorise pas l'affectation de deux champs à un même objet(textbox,label combobox...) et prend en charge la première affectation seulement et dans la deuxième affectation une erreur se produit
et le nouveau champs de la nouvelle requête n'est pas reconnu.
je vais donné un exemple por bien comprendre


private sub Recherche1()
dim rec as recordset
dim strSQL as String
strSQL = " SELECT Num_Port" & _
" From Nav_Port " & _
" WHERE Nom_Port = '" & Text2.Text & "';"


Set rec = cnc.Execute(strSQL, , adCmdText) 'cnc est la source de connection à la 'base effectué dans un module

Set Text1.DataSource = rec
Text1.DataField = "Num_Port"


End Sub


private sub Recherche2()
dim rec as recordset
dim strSQL as String
strSQL = " SELECT Nom_Port" & _
" From Navire " & _
" WHERE Num_Port = '" & Text3.Text & "';"


Set rec = cnc.Execute(strSQL, , adCmdText)

Set Text1.DataSource = rec
Text1.DataField = "Nom_Port"


End Sub


si la première procédure est executé avant, une message d'erreur s'affiche pendant l'execution du deuxième procédure qui m'indique:
"Impossible de lier au champs ou au DataMember : 'Num_Port'". et le curseur s'arrete sur la ligne "Set Text1.DataSource = rec" dans le débogage
je veux libérer "Text1" de l'ancien champs pour affecter le nouveau
Merci d'avance
Afficher la suite 

3 réponses

Meilleure réponse
Doro81079 398 Messages postés vendredi 22 avril 2005Date d'inscription 24 février 2015 Dernière intervention - 14 sept. 2005 à 00:24
3
Merci
bonsoir,

essaies avec des cases options suivant la recherche effectuées avec 1 if tel ou tel code est executé

exemple :

dim rec as recordset
dim strSQL as String

if optionrecherche1.value=true then

strSQL = " SELECT Num_Port" & _
" From Nav_Port " & _
" WHERE Nom_Port = '" & Text1.Text & "';"
Set rec = cnc.Execute(strSQL, , adCmdText)
Set Text1.DataSource = rec
Text1.DataField = "Num_Port"

elseif optionrecherche2.value =true then

strSQL = " SELECT Nom_Port" & _
" From Navire " & _
" WHERE Num_Port = '" & Text1.Text & "';"


Set rec = cnc.Execute(strSQL, , adCmdText)
Set Text1.DataSource = rec
Text1.DataField = "Nom_Port"

else

msgbox ("ce que tu veux...")

end if


mais sinon pourquoi tu passe pas par adodb???

salut
doro

Merci Doro81079 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

crenaud76 4172 Messages postés mercredi 30 juillet 2003Date d'inscription 9 juin 2006 Dernière intervention - 13 sept. 2005 à 18:51
0
Merci
Fait l'inverse ! Affecte le DataField AVANT la DataSource

Christophe
cs_med_ali 23 Messages postés vendredi 18 mars 2005Date d'inscription 2 avril 2011 Dernière intervention - 13 sept. 2005 à 19:05
0
Merci
j'ai essayé mais ca na pas marché. j'ai essayé aussi avec
"set text1.datasource = nothing" , j'ai déclaré un nouveau recordset mais toujours le même problème

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.