PESQUISA

USUARIO.EXCLUIDOS 05/01/2005 00:15:38
#58655
Opa.. bom eu fiz um db com relacionamento entre varias tabelas e queria saber como faço para usa-las no vb usando adodc.
se alguem puder ajudar...
USUARIO.EXCLUIDOS 05/01/2005 08:34:27
#58680
Resposta escolhida
ado2.recordsource = "Select * from tabela2 where nomedocampo = " & ado1.recordset(numerodocamporelacionado)
ado2.refresh
ou seja o ado2 tem a tabela2 e digamos que o relacionamento esta com o primeiro campo da tabela1 com o segundo campo desta tabela2 então a consulta ficaria assim
ado2.recordsource = "Select * from tabela2 where campo2 = " & ado1.recordset(0)
ado2.refresh
ou seja selecione tudo da tabela2 cujo campo2 seja igual ao campo1 da tabela1
o zero é porque o numero que identifica os campos começa pelo zero e não pelo um logo se for outro campo substitua o zero pelo numero correspondente na sua tabela levando em conta é claro que o primeiro é zero o segundo é um e assim por diante
devo lembrar que esta é uma que leva em conta que o ado1 ja esteja aberto e no registro no qual se deseja selecionar para fazer com o ado1 fechado então valor de pesquisa seria passdo pelo usuario então o valor estaria numa textbox logo a pesquisa ficaria assim:
ado2.recordsource = "Select * from tabela2 where campo2 = " & textpesquisa.text
ado2.refresh
para cadastrar um novo item na tabela2 relacionada na tabela1 você precisa passar o valor do relacionamento para a tabela2 que esta na tabela1 então antes do update ficaria assim
ado2.recordset(1) = ado1.recordset(0)
ado2.update
ou seja, o campo relacionado na tabela2 campo 2(porque o campo é dois mas a contagem é do zero logo campo2 é igual a um) ficara igual ao campo 1 da tabela1
e do mesmo jeito que na consulta se o ado1 nao estiver aberto o parametro vira de uma textbox então apenas substitua
ado2.recordset(1) = text1.text
ado2.update
USUARIO.EXCLUIDOS 05/01/2005 10:40:58
#58713
Aew.... bom isso ja eh uma boa ajuda do nda que eu sei... ehehehe
ja da pra começar alguma coisa.
vo dexa aki em aberto pra ve se consigo fze alguma coisa
vlw Wiliam
USUARIO.EXCLUIDOS 05/01/2005 17:26:46
#58852
Ae Wiliam... esse tutorial do moratti eh show... consegui fze um pouco doq euq ueria... mais ta dando um erro...
eu usei o datagrid relacionado a um textbox, e funciono legal, mais quando eu do um
Adodc1.Recordset.AddNew
ou eu movo pra algum registro invalido da erro de sintaxe...
o codigo qui to usando eh esse:


Private Sub text10_Change()
Dim strconsulta As String
strconsulta = "Select * from Produto Where IdCliente = " & Text10.Text

With Adodc2
.RecordSource = strconsulta
.Refresh
End With

With DataGrid1
.ClearFields
.ReBind
End With
End Sub



Tem como me da uma luz?
ehehehe
ele da erro no .refresh.
USUARIO.EXCLUIDOS 05/01/2005 17:43:44
#58854
quanto a pesquisa você tem que contornar o erro quando não achar nada com o critério especificado

Private Sub text10_Change()
Dim strconsulta As String
strconsulta = "Select * from Produto Where IdCliente = " & Text10.Text
With Adodc2
.RecordSource = strconsulta
.Refresh
End With
if adodc2.recordset.eof = true and adodc2.recordset.bof = true then
msgbox "Nenhum registro com o critério especificado"
adodc2.recordsource = "Select * from Produto Where IdCliente"
adodc2.refresh
end if
end sub
detalhe se o campo idCliente em sua tabela é numérico sua consulta esta correta, agora se é texto mude
adodc2.recordsource = "Select * from Produto Where IdCliente like '" & text10.text & "*'"
esta pesquisa retorna dados de acordo com as iniciais do texto de pesquisa.
USUARIO.EXCLUIDOS 05/01/2005 17:47:05
#58856
quanto ao erro no incluir, o ideal é você postar o seu código completo de inclusão, indicar qual linha dá o erro e qual a mensagem de erro.
USUARIO.EXCLUIDOS 05/01/2005 18:01:41
#58859
Ola Wiliam... Bom essa sua correçao nao ajudou por 2 motivos...
1: existem clientes que ainda nao possuem um produto especificado
2: o erro ainda ocorre quando eu faço algumas coisas, como adcionar novo cliente(adodc1), segue abaixo o codigo doAdcionar/salvar.

Adcionar:
Private Sub Command4_Click()
On Error Resume Next
Adodc1.Recordset.AddNew
Text2.SetFocus
Text10.Text = ""
DataGrid1.Visible = False
End Sub


Salvar
Private Sub Command1_Click()
On Error Resume Next
Adodc1.Recordset.MoveNext
Adodc1.Recordset.Save
Adodc1.Refresh
Adodc1.Refresh
Adodc1.Recordset.MoveLast
DataGrid1.Visible = True
End Sub


Bom ele da erro no refresh do text_change...
Erro de sintaxe na clausula FROM. ( da esse erro )
bom... eu to meio perdido aki...[S43]


PS: ta valendo a atençao Wilian
USUARIO.EXCLUIDOS 06/01/2005 07:39:44
#58912
veja após o addnew para salvar use o update e não tem como dar movenext pois você está incluindo um registro logo só ele está aparecendo.
Private Sub Command1_Click()
On Error Resume Next
Adodc1.Recordset.update
Adodc1.recordsource "Select * from tabela1"
Adodc1.Refresh
Adodc1.Refresh
DataGrid1.Visible = True
End Sub
USUARIO.EXCLUIDOS 06/01/2005 20:33:12
#59095
Man, continua dando erro de sintaxe na clausula from, aih o vb marca que o
.refresh do text10_change
esse erro ocorre quando clico no command4
USUARIO.EXCLUIDOS 07/01/2005 16:32:49
#59260
alguem pode me ajudar?
USUARIO.EXCLUIDOS 07/01/2005 16:36:12
#59262
Kyanor coloque desse jeito no text10_change

Private Sub text10_Change()
Dim strconsulta As String
On error resume next
strconsulta = "Select * from Produto Where IdCliente = " & Text10.Text

With Adodc2
.RecordSource = strconsulta
.Refresh
End With

With DataGrid1
.ClearFields
.ReBind
End With
End Sub
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas