SQL A PARTIR DE OPTIONS
PREZADOS AGRADEÇO PELA ATENÇÃO DE TODOS QUE SEMPRE TEM RESPONDIDO QUANDO SOLICITAMOS ALGUMA AJUDA.
BEM APÓ“S TER RECEBIDO A AJUDA DE UM USUà ÂRIO DO FORUM, FIZ AS ALTERAÇÕES NO PROGRAMA E DEU CERTO. PORéM QUANDO FUI SALVAR NO OUTRO HD FIZ A TROCA DOS FONTES E SOBREPUS O ALTERADO E NÃO ME LEMBRO MAIS COMO FAZER A ALTERAÇÃO NOVAMENTE. A DÃÅ¡VIDA é A SEGUINTE:
TENHO UMA CONSULTA DE AUTORES NO PROGRAMA. TENHO 09 OPTION BUTTONS PARA SELECIONAR E NO BANCO DE DADOS TAMBEM TEM NOVE CAMPOS ONDE REGISTRO OS AUTORES DOS LIVROS. QUANDO O USUARIO SELECIONA UM OPTION BUTON ELE BUSCA NO CAMPO ESPECIFICO NO BANCO DE DADOS E MOSTRA NO GRID OS AUTORES ENCONTRADOS.
ALGUM PODERIA ME DAR UMA DICA, POIS TENTEI E NÃO DEU CERTO.
GRATO.
LUIZ.
[txt-color=#008000]** TÃtulo Original ("PRECISO NOVAMENTE DE AJUDA") editado por KpellaJr
** Por favor, não use MAIÃÅ¡SCULAS, significa que está gritando e dificulta a leitura. [/txt-color]
BEM APÓ“S TER RECEBIDO A AJUDA DE UM USUà ÂRIO DO FORUM, FIZ AS ALTERAÇÕES NO PROGRAMA E DEU CERTO. PORéM QUANDO FUI SALVAR NO OUTRO HD FIZ A TROCA DOS FONTES E SOBREPUS O ALTERADO E NÃO ME LEMBRO MAIS COMO FAZER A ALTERAÇÃO NOVAMENTE. A DÃÅ¡VIDA é A SEGUINTE:
TENHO UMA CONSULTA DE AUTORES NO PROGRAMA. TENHO 09 OPTION BUTTONS PARA SELECIONAR E NO BANCO DE DADOS TAMBEM TEM NOVE CAMPOS ONDE REGISTRO OS AUTORES DOS LIVROS. QUANDO O USUARIO SELECIONA UM OPTION BUTON ELE BUSCA NO CAMPO ESPECIFICO NO BANCO DE DADOS E MOSTRA NO GRID OS AUTORES ENCONTRADOS.
ALGUM PODERIA ME DAR UMA DICA, POIS TENTEI E NÃO DEU CERTO.
GRATO.
LUIZ.
[txt-color=#008000]** TÃtulo Original ("PRECISO NOVAMENTE DE AJUDA") editado por KpellaJr
** Por favor, não use MAIÃÅ¡SCULAS, significa que está gritando e dificulta a leitura. [/txt-color]
pelo q entendi eh mais ou menos assim...
If Opt1 = True Then
With adodcteste
.RecordSource = "SELECT * FROM Tabela where autor = 01;"
.Refresh
End With
end if
if Opt2 = true then
With adodcteste
.RecordSource = "SELECT * FROM Tabela where autor = 02;"
.Refresh
End With
end if
e assim por diante, tem outras maneiras mas essa eh bem simples...
If Opt1 = True Then
With adodcteste
.RecordSource = "SELECT * FROM Tabela where autor = 01;"
.Refresh
End With
end if
if Opt2 = true then
With adodcteste
.RecordSource = "SELECT * FROM Tabela where autor = 02;"
.Refresh
End With
end if
e assim por diante, tem outras maneiras mas essa eh bem simples...
LGNSantos
Boa Tarde
Quanto a sua dúvida, se forem sequenciais os números, então pode usar um Array de Options, assim o código ficará reduzido:
Elimina-se 9 IF... END IF. Se forem outros valores, armazene na TAG de cada Option, e ficaria assim:
Teste e veja se resolveu
[s50]
Por favor não use este tipo de TÃtulo
[s55]
Boa Tarde
Quanto a sua dúvida, se forem sequenciais os números, então pode usar um Array de Options, assim o código ficará reduzido:
Private Sub Option1_Click(Index As Integer)
Dim iAutor as Integer
iAutor = index +1
With adodcteste
.RecordSource = "SELECT * FROM Tabela where autor = ;" & iAutor
.Refresh
End With
End Sub
Elimina-se 9 IF... END IF. Se forem outros valores, armazene na TAG de cada Option, e ficaria assim:
Private Sub Option1_Click(Index As Integer)
Dim iAutor as Integer
iAutor = CINT(Option1(index).Tag) +1
With adodcteste
.RecordSource = "SELECT * FROM Tabela where autor = ;" & iAutor
.Refresh
End With
End Sub
Teste e veja se resolveu
[s50]
Por favor não use este tipo de TÃtulo
[s55]
deixa eu explicar de novo.
Tenho um form com: 9 option buttons, um grid, um text box e um label para aparecer o autor selecionado no grid maior. No banco de dados tenho 09 campos para quando for cadastrar uma referencia de um livro onde tenha mais de um autor serão cadastrados separados, um em cada campo, ex.: autor, autor1, autor2, autor3, autor4, etc... Quando marcar o option3 e digitar o nome do autor no textbox ele vai mostrar na grid o nome deste autor digitado. O que acontece é que também não está mostrando o nome do autor4 por exemplo na grid. Ele pesquisa no autor4, mas mostra do autor1.
Grato.
Luiz.
Tenho um form com: 9 option buttons, um grid, um text box e um label para aparecer o autor selecionado no grid maior. No banco de dados tenho 09 campos para quando for cadastrar uma referencia de um livro onde tenha mais de um autor serão cadastrados separados, um em cada campo, ex.: autor, autor1, autor2, autor3, autor4, etc... Quando marcar o option3 e digitar o nome do autor no textbox ele vai mostrar na grid o nome deste autor digitado. O que acontece é que também não está mostrando o nome do autor4 por exemplo na grid. Ele pesquisa no autor4, mas mostra do autor1.
Grato.
Luiz.
Luiz
Por favor, se você não colocar a sua Rotina nós não poderemos ajudar.
Poste o código de pesquisa aqui. Se você olhar atentamente, o código que postei SUBSTITUI 9 IF's..... END IF's porque usa Array de Componentes (option).
No aguardo
[s55]
Por favor, se você não colocar a sua Rotina nós não poderemos ajudar.
Poste o código de pesquisa aqui. Se você olhar atentamente, o código que postei SUBSTITUI 9 IF's..... END IF's porque usa Array de Componentes (option).
No aguardo
[s55]
BOM , VER C TE AJUDAR A FAZER ASSIM
C COLOCA NA TAG DE CADA OPTION O NOME DO CAMPO E NO DATAFIELD OTIPO EXEMPLO
ISSO C COLOCA NA PROPRIEDADE DO COMPONENTE TÃ Â
OPTION1.TAG=NOME_CAMPO_DO_BANCO_AUTOR
OPTION1.DATAFIELD=C
OPTION2.TAG=NOME_CAMPO_DO_BANCO_ISDN
OPTION2.DATAFIELD=C
OPTION3.TAG=NOME_CAMPO_DO_BANCO_CODIGO
OPTION3.DATAFIELD=N
NA HORA DA CONSULTA VAI FICAR + OU - ASSIM
PRIVATE SUB COMMAND1_CLICK()
DIM OBJ_OPTION AS OBJECT
DIM RS AS NEW ADODB.RECORDSET
FOR EACH OBJ_OPTION IN CONTROLS
IF UCASE(TYPENAME(OBJ_OPTION))="OPTIONBUTTOM" THEN
IF OBJ_OPTION.VALUE=1 THEN
IF TRIM(OBJ_OPTION.TAG ) <> "" THEN
RS.OPEN "SELECT * FROM TABELA WHERE " & OBJ_OPTION.TAG & "= " & IIF(OBJ_OPTION.DATAFIELD="C","'","") & TEXT1 & IIF(OBJ_OPTION.DATAFIELD="C","'","") ,CONEXAO,CUROS,LOCK
SEUS COMANDO
EXIT FOR
END IF
END IF
END IF
NEXT
BOM ESSA é A IDEIA. C PODE USAR ISSO COM UM ARRAY DE OPTION
ESPERO TER AJUDADO
C COLOCA NA TAG DE CADA OPTION O NOME DO CAMPO E NO DATAFIELD OTIPO EXEMPLO
ISSO C COLOCA NA PROPRIEDADE DO COMPONENTE TÃ Â
OPTION1.TAG=NOME_CAMPO_DO_BANCO_AUTOR
OPTION1.DATAFIELD=C
OPTION2.TAG=NOME_CAMPO_DO_BANCO_ISDN
OPTION2.DATAFIELD=C
OPTION3.TAG=NOME_CAMPO_DO_BANCO_CODIGO
OPTION3.DATAFIELD=N
NA HORA DA CONSULTA VAI FICAR + OU - ASSIM
PRIVATE SUB COMMAND1_CLICK()
DIM OBJ_OPTION AS OBJECT
DIM RS AS NEW ADODB.RECORDSET
FOR EACH OBJ_OPTION IN CONTROLS
IF UCASE(TYPENAME(OBJ_OPTION))="OPTIONBUTTOM" THEN
IF OBJ_OPTION.VALUE=1 THEN
IF TRIM(OBJ_OPTION.TAG ) <> "" THEN
RS.OPEN "SELECT * FROM TABELA WHERE " & OBJ_OPTION.TAG & "= " & IIF(OBJ_OPTION.DATAFIELD="C","'","") & TEXT1 & IIF(OBJ_OPTION.DATAFIELD="C","'","") ,CONEXAO,CUROS,LOCK
SEUS COMANDO
EXIT FOR
END IF
END IF
END IF
NEXT
BOM ESSA é A IDEIA. C PODE USAR ISSO COM UM ARRAY DE OPTION
ESPERO TER AJUDADO
MEU OPTION NÃO TEM DATAFIELD. E AI.
Luiz não sei se entendi direito, mas não seria mais fácil usar um único campo no DB para guardar o autor, assim a pesquisa ficaria mais simples e prática.
Guardar somente o Ãndice dele no campo, e ao selecionar o optiom button você grava somente o Ãndice dele que corresponderá ao do seu autor.
Por outro lado eu faço diferente, pois como os autores podem ser ampliados ou reduzidos, em número, isso seria uma tabela e o melhor seria carregar em um combo, particularmente um DBCombo não ligado a nenhum Data, pois não uso isso e faço o código na mão mesmo. Inclusive incluà aqui um código para autopreenchimento dos DBCombos que não encontrei na Web, então implementei um.
Assim fica muito mais fácil, usar:
- cboAutor.BoundText = Indice da tabela autor
- cboAutor.Text = Nome do autor
Se isso não for útil, desculpe é só ignorar.
Guardar somente o Ãndice dele no campo, e ao selecionar o optiom button você grava somente o Ãndice dele que corresponderá ao do seu autor.
Por outro lado eu faço diferente, pois como os autores podem ser ampliados ou reduzidos, em número, isso seria uma tabela e o melhor seria carregar em um combo, particularmente um DBCombo não ligado a nenhum Data, pois não uso isso e faço o código na mão mesmo. Inclusive incluà aqui um código para autopreenchimento dos DBCombos que não encontrei na Web, então implementei um.
Assim fica muito mais fácil, usar:
- cboAutor.BoundText = Indice da tabela autor
- cboAutor.Text = Nome do autor
Se isso não for útil, desculpe é só ignorar.
O NEGOCIO é QUE O BANCO DE DADOS INICIAIS JA ESTA COM 520 LIVROS CADASTRADOS E PRONTO. TENHO QUE IR FAZENDO UM PROG A PARTIR DESTES DADOS PRONTOS.
INFELIZMENTE.
GRATO.
INFELIZMENTE.
GRATO.
FAZ ASSIM ENTAUM
ISSO C COLOCA NA PROPRIEDADE DO COMPONENTE TÃ Â
OPTION1.TAG=NOME_CAMPO_DO_BANCO_AUTOR;C
OPTION2.TAG=NOME_CAMPO_DO_BANCO_ISDN ;C
OPTION3.TAG=NOME_CAMPO_DO_BANCO_CODIGO;N
NA HORA DA CONSULTA VAI FICAR + OU - ASSIM
PRIVATE SUB COMMAND1_CLICK()
DIM OBJ_OPTION AS OBJECT
DIM RS AS NEW ADODB.RECORDSET
DIM VAR_CCONSULTAT() AS STRING
FOR EACH OBJ_OPTION IN CONTROLS
IF UCASE(TYPENAME(OBJ_OPTION))="OPTIONBUTTOM" THEN
IF OBJ_OPTION.VALUE=1 THEN
IF TRIM(OBJ_OPTION.TAG ) <> "" THEN
VAR_CCONSULTAT=SPLIT(OBJ_OPTION.TAG,";")
RS.OPEN "SELECT * FROM TABELA WHERE " & VAR_CCONSULTAT(0) & "= " & IIF(VAR_CCONSULTAT(1)="C","'","") & TEXT1 & IIF(VAR_CCONSULTAT(1)="C","'","") ,CONEXAO,CUROS,LOCK
SEUS COMANDO
EXIT FOR
END IF
END IF
END IF
NEXT
BOM ESSA é A IDEIA. C PODE USAR ISSO COM UM ARRAY DE OPTION
ESPERO TER AJUDADO
ISSO C COLOCA NA PROPRIEDADE DO COMPONENTE TÃ Â
OPTION1.TAG=NOME_CAMPO_DO_BANCO_AUTOR;C
OPTION2.TAG=NOME_CAMPO_DO_BANCO_ISDN ;C
OPTION3.TAG=NOME_CAMPO_DO_BANCO_CODIGO;N
NA HORA DA CONSULTA VAI FICAR + OU - ASSIM
PRIVATE SUB COMMAND1_CLICK()
DIM OBJ_OPTION AS OBJECT
DIM RS AS NEW ADODB.RECORDSET
DIM VAR_CCONSULTAT() AS STRING
FOR EACH OBJ_OPTION IN CONTROLS
IF UCASE(TYPENAME(OBJ_OPTION))="OPTIONBUTTOM" THEN
IF OBJ_OPTION.VALUE=1 THEN
IF TRIM(OBJ_OPTION.TAG ) <> "" THEN
VAR_CCONSULTAT=SPLIT(OBJ_OPTION.TAG,";")
RS.OPEN "SELECT * FROM TABELA WHERE " & VAR_CCONSULTAT(0) & "= " & IIF(VAR_CCONSULTAT(1)="C","'","") & TEXT1 & IIF(VAR_CCONSULTAT(1)="C","'","") ,CONEXAO,CUROS,LOCK
SEUS COMANDO
EXIT FOR
END IF
END IF
END IF
NEXT
BOM ESSA é A IDEIA. C PODE USAR ISSO COM UM ARRAY DE OPTION
ESPERO TER AJUDADO
Não funcionou. Deixa eu explicar novamente.
Tenho um form com Um campo textbox onde vou digitar os dados para a consulta. Tenho 09 option buttons, uma grid e um label. Quando digitar o nome do autor na textbox e selecionar qual o autor ele vai buscar todos os autores de acordo com o autor que selecionei (option 7 por exemplo) e vai mostrar no grid os autores encontrados. A label vai mostrar num tamanho maior o autor que selecionar no grid.
Espero ter melhorado o texto.
Grato.
Luiz.
Tenho um form com Um campo textbox onde vou digitar os dados para a consulta. Tenho 09 option buttons, uma grid e um label. Quando digitar o nome do autor na textbox e selecionar qual o autor ele vai buscar todos os autores de acordo com o autor que selecionei (option 7 por exemplo) e vai mostrar no grid os autores encontrados. A label vai mostrar num tamanho maior o autor que selecionar no grid.
Espero ter melhorado o texto.
Grato.
Luiz.
Tópico encerrado , respostas não são mais permitidas