Jump to content
Fórum Script Brasil
  • 0

Sql No Vb


Musashi_RS
 Share

Question

Olá,

Tenho um arquivo .mdb com duas tabelas dentro: Tabela1 e Tabela2 na minha aplicação em VB6, utilizo um Data Control com DAO 3.51.

Preciso de uma instrução SQL que realize uma busca nas duas tabelas pelos registros em que o campo TIPO possua a string armazenada na variável PESQ.

No momento estou utilizando assim:

Primeiro faz a busca na primeira tabela.

SELECT * FROM Tabela1 WHERE Tipo LIKE '*PESQ*'

Se não encontrar na primeira tabela faz a busca na segunda:

SELECT * FROM Tabela2 WHERE Tipo LIKE '*PESQ*'

O problema disso é que não seleciona no DBGrid registros da Tabela1 e Tabela2 ao mesmo tempo. Ou todos da Tabela1 ou todos da tabela2.

Por isso eu preciso selecionar apenas em uma instrução SQL. Ou se houver outra forma...

PS.: Sei que em SQL se utiliza "%", mas no VB não deu certo. Por isso utilizo "*" que funciona.

Desde já agradeço a atenção. :lol:

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Uma opinião, faça o seguinte teste:

Ponha outro FORM, nele insira, ao invés do DataControl, um ADODC

Insira um DataGrid

Faça a ligação do DataGrid com o Controle ADODC

Ponha no RecordSource do ADODC o comando select para selecionar as duas tabelas

desta forma aparecerá no Grid os campos das duas tabelas como se estivessem em uma

OBS: com o Controle ADODC pode usar o "%"

Link to comment
Share on other sites

  • 0

não uso ADODC então não sei se a dica do macedo vai dar certo. mas se não der, eu costumo fazer assim:

SELECT * FROM Tabela1 WHERE Tipo LIKE '*PESQ*' UNION ALL SELECT * FROM Tabela2 WHERE Tipo LIKE '*PESQ*'

num select só. mas so vai funcionar, se as estruturas das duas tabelas forem IDENTICAS.

Link to comment
Share on other sites

  • 0

Quanto a resposta do Macêdo, fui colocar via código a instrução no RecorddSource do ADODC mas ele não tem essa opção. Como fazer via código? :huh:

não uso ADODC então não sei se a dica do macedo vai dar certo. mas se não der, eu costumo fazer assim:

SELECT * FROM Tabela1 WHERE Tipo LIKE '*PESQ*' UNION ALL SELECT * FROM Tabela2 WHERE Tipo LIKE '*PESQ*'

num select só. mas so vai funcionar, se as estruturas das duas tabelas forem IDENTICAS.

OK, realmente a Tabela dois possui um campo a mais. Vou igualar a estrutura então.

Obrigado. :lol:

Link to comment
Share on other sites

  • 0
OK, realmente a Tabela dois possui um campo a mais. Vou igualar a estrutura então.

Obrigado. :lol:

você não precisa necessariamente igualar as estruturas, pode igualar os selects:

SELECT Campo1, Campo2 FROM Tabela1 WHERE Tipo LIKE '*PESQ*' UNION ALL SELECT Campo1, Campo2 FROM Tabela2 WHERE Tipo LIKE '*PESQ*'

Link to comment
Share on other sites

  • 0

Colocando o controle ADODC você clica nele com o direito

Clica em ADODC Properties

abre então a caixa PROPERTIE PAGES

Clica em UseConnection String

Clica no Botão BUILD

abre a caixa PROPRIEDADE DE VINCULAÇÂO DE DADOS

Na janela que abre você clica duas vezes no item MICROSOFT JET 4.0 OL DB PROVIDER

então ele salta para a aba conexão onde você clica no botão "..." e seleciona o BD

Depois clica em TESTAR CONEXÂO

Depois em OK

ele volta para a primeira caixa: PROPERTIE PAGES

você clica na aba RECORDSOURCE

No item COMMAND TYPE escolhe a opção 1- ADCMDTEXT

isto habilita a caixa COMMAND TEXT SQL

você põe sua SQL la dentro

agora é so ir na propriedade do DATAGRID

colocar na propriedade DATASOURCE o nome do controle ADODC, o qual já aparece lá quando você clica na seta pra baixo

clicar com o direito sobre o DATAGRID e clicar em RETREVIE FIELD'S

PRONTO ele preenche com os campo das duas tabelas

Dá pra fazer isto tudo via código, por sinal estou abandonando um pouco o controle ADODC, uso ele só quando é para consultas ou uso de GRID's pois facilita bastante, se quiser saber mais é só postar que terei prazer em passar o pouco do conhecimento que tenho.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.1k
    • Total Posts
      647.1k
×
×
  • Create New...