Ir para conteúdo
Fórum Script Brasil
  • 0

Sql No Vb


Musashi_RS

Pergunta

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 para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...