Ir para conteúdo
Fórum Script Brasil

brunohjoia

Membros
  • Total de itens

    121
  • Registro em

  • Última visita

Posts postados por brunohjoia

  1. aew galera. o problema é o seguinte:

    Estou fazendo um datagrid que mostra os resultados de uma busca feita num banco de dados, que está vinculado ao Adodc1. Quando a busca é feita por números (codigo do produto por exemplo) eu consigo, já que não é necessário usar a clausula LIKE e sim o sinal =. Mas quando o objetivo é retornar resultados de texto (nome do produto, como no código abaixo) estou tendo dificuldades. Veja o código que estou tentando usar:

    if optNome.Value = True Then
    
      aux = UCase(CStr(InputBox("Digite uma parte qualquer do nome do produto desejado:")))
      Adodc1.RecordSource = "SELECT * FROM Produtos WHERE nome_produto LIKE '*" & aux & "*'"
      Adodc1.Refresh
      DataGrid1.Refresh
      If Adodc1.Recordset.EOF Or Adodc1.Recordset.BOF Then
         MsgBox "A procura não encontrou nenhum resultado válido!", , "Sistema de Procura"
         Adodc1.RecordSource = "SELECT * FROM Produtos ORDER BY cod_produto"
         Adodc1.Refresh
         DataGrid1.Refresh
         Exit Sub
      End If
    End if
    

    Mesmo que eu tente fazer essa busca por um produto que eu tenho certeza que está na base de dados, ele diz que não foi encontrado nenhum resultado válido.

    Por exemplo: eu tenho 2 produtos na minha tabela ("Coca Cola" e "Salgadinho") e quero localizá-los. Para isto basta digitar uma letra que esteja em ambos os nomes, como o "O" ou o "L". Mas quando eu faço isso ele diz q não há resultados válidos. Entenderam?

    Qual é o problema no meu código? O que tenho q fazer pra consertar?

    Obrigado

  2. Aew galera... to com um prblema aqui....

    Eu tenho um DataGrid que exibe os dados de uma tabela que está sendo fornecida pelo Adodc1. Eu quero que quando o usuario clique na option, o DataGrid mostre os dados na ordem decrescente do código do produto... para isso estou usando o seguinte codigo:

    Private Sub optOrdenaCodigo_Click()
    
    Adodc1.RecordSource = "SELECT * FROM Produtos ORDER BY cod_produto DESC"
    Adodc1.Refresh
    DataGrid1.Refresh
    
    End Sub
    

    Mas quando eu clico no option para ver se dá certo, aparece uma mensagem acusando um erro de sintaxe na clausula FROM, e depois outra avisando que não foi possível executar o refresh do adodc1.

    Onde estou errando? Alguém tem uma sugestão melhor?

    OBS:O meu VB6 está atualizado com o Service Pack 6

    Obrigado!

  3. Aew pessoal... vou insinstir nessa pergunta...

    Estou precisando fazer uma lista de produtos que se encontram num banco de dados, de acordo com um critério de procura que o usuário fizer, ou seja, uma consulta.

    Então pensei na possibilidade de fazer uma busca e, logo depois, adicionar o conteúdo de um dos campos do registro que foi encontrado na busca (no caso nomeproduto), para depois adicioná-lo na list. Então usei o seguinte código:

      
          nome = txtnome.text
          FrmVendas.Data3.Recordset.MoveFirst
          While FrmVendas.Data3.Recordset.EOF = False
           FrmVendas.Data3.Recordset.FindNext "nomeproduto Like '*" & nome & "*'"
           FrmConsulta.List1.AddItem FrmVendas.Data3.Recordset!nomeproduto
           FrmVendas.Data3.Recordset.MoveNext
          Wend
          FrmConsulta.Show
    

    Foi aí que eu encontrei outro problema. Na teoria é perfeito, mas na prática não... Perceba:

    O meu banco de dados tem o seguintes registros:

    1 - Cigarro

    2 - Gibi Turma da Monica

    3 - Revista Veja

    4 - Revista Istoe

    5 - Coca Cola

    6 - Bilhete CPTM

    7 - Bala Butter

    8 - Ruffles30g

    E quando eu procuro, por exemplo, um registro que tenha a letra "c", pelo código ele deveria encontrar os registros 1, 2, 5 e 6, ao passo que na list aparecem os itens2, 5, 6, 7 e 8, ou seja, ele não "encontra" o primeiro registro e ainda exibe resultados que não deveriam aparecer.

    Qual é o erro? é de lógica ou é de comandos mesmo? Se possível, alguém aí tem algum código que faça o mesmo, mas corretamente?

    vlw galera!

  4. Senta que lá vem história!!!

    Oi, obrigado pela ajuda cara, mas eu descobri qual era o erro: Com o código que eu estava usando, o programa estava tentando armazenar numa variável o resultado de uma busca, ou seja, um registro inteiro, o que é impossível!!! Apenas é possível armazenar o conteúdo de um campo e não o registro inteiro, não é verdade? Então pensei na possibilidade de fazer uma busca e, logo depois, adicionar o conteúdo de um dos campos do registro que foi encontrado na busca (no caso nomeproduto), para depois adicioná-lo na list. Então usei o seguinte código:

           nome = txtnome.text
           FrmVendas.Data3.Recordset.MoveFirst
           While FrmVendas.Data3.Recordset.EOF = False
            FrmVendas.Data3.Recordset.FindNext "nomeproduto Like '*" & nome & "*'"
            FrmConsulta.List1.AddItem FrmVendas.Data3.Recordset!nomeproduto
            FrmVendas.Data3.Recordset.MoveNext
           Wend
           FrmConsulta.Show
    
    

    Foi aí que eu encontrei outro problema. Na teoria é perfeito, mas na prática não... Perceba:

    O meu banco de dados tem o seguintes registros:

    1 - Cigarro

    2 - Gibi Turma da Monica

    3 - Revista Veja

    4 - Revista Istoe

    5 - Coca Cola

    6 - Bilhete CPTM

    7 - Bala Butter

    8 - Ruffles30g

    E quando eu procuro, por exemplo, um registro que tenha a letra "c", pelo código ele deveria encontrar os registros 1, 2, 5 e 6, ao passo que na list aparecem os itens2, 5, 6, 7 e 8, ou seja, ele não "encontra" o primeiro registro e ainda exibe resultados que não deveriam aparecer.

    A minha pergunta agora é simples: Alguém tem alguma sugestão? tongue.gif

  5. Olá gente... Estou usando o código abaixo para adicionar à uma list os resultados da consulta q a rotina faz... Mas quando eu executo a rotina, aparece um erro dizendo "Compile Error - Expected Function or Variable", e aponta que o erro está no ".FindNext". O interessante é que se eu tiro o "resultado =" de antes do resto da linha de comando, não aparece o tal erro.

    Código:

    Data3.Recordset.MoveFirst
           While Data3.Recordset.EOF = False
            resultado = Data3.Recordset.FindNext("nomeproduto LIKE '*") & nome & "*'"
            FrmConsulta.List1.AddItem resultado
            Data3.Recordset.MoveNext
           Wend
           FrmConsulta.Show
    

    Alguém poderia dar uma sugestão para resolver o problema?

    Obrigado!!

  6. Oi pessoal....

    Estou fazendo uma rotininha que adiciona produtos a uma flexgrid, mas gostaria que, ao clicar no botão adicionar, este verificasse se o produto que ele irá adicionar já não foi adicionado antes na flexgrid. Para fazer a verificação, eu pretendo usar o código do produto (que ao ser adicionado fica na 1ª coluna da grid) como referencia... Sendo assim, gostaria que o botão lesse todas as linhas da coluna do código e comparasse com o código do produto que será adicionado. Se houver alguma linha onde já tenha esse código de produto, o botão simplesmente não adiciona e emite uma msgbox...

    O meu problema é: Eu não sei fazer a rotina que faz a comparação entre cada linha da grid e o código do produto. Qual é o método que devo usar para verificar isso???? Por favor, me dêem um exemplo....

    Obrigado

  7. Eu estou tentando usar uma FlexGrid para exibir uma lista dos produtos que já passaram pelo caixa de um supermercado, e estão "à espera" da confirmação da venda. gostaria que cada coluna da grid (são elas: Produto, Estoque, Preço) tivesse o seu título escrito na propria grid... Também não sei colocar texto na segunda coluna da grid... A unica coisa que sei usar é o AddItem...

    Alguém poderia me dizer qual a melhor grid que devo usar nesse caso??? E como eu devo proceder para fazer aparecer texto nas celulas fixas e outras colunas????

    Vlw

  8. Hummmm... Eu tentei e não consegui... primeiro eu fiz o seguinte:

    Data1.RecordSource ("SELECT PrecoCustoUnitario FROM Produtos ORDER BY PrecoCustoUnitario ASC")
    
    Depois fiz isto e nada:
    Data1.RecordSource = ("SELECT PrecoCustoUnitario FROM Produtos ORDER BY PrecoCustoUnitario ASC")
    

    coloquem um código como exemplo pra eu ver... o que eu devo colocar como condição logo após o Where?

  9. Aew pessoal!!!

    Agora eu estou com um novo problema no meu projeto... Eu preciso criar botões no form do VB6 que façam com que os registros de um de um determinado campo de uma tabela do access fiquem em ordem crescente ou decrescente, de acordo com a necessidade do usuário (exatamente como os botões de ordem crescente e decrescente do proprio access). Eu gostaria de fazer isso com todos os campos da minha tabela, e não só com a chave primária.

    Qual é a instrução ou função que eu devo usar nos botões para fazer isso? Se não houver nenhuma função especifica para isso, como eu poderia fazer isto?

    Obrigado

  10. Era texto... mudei para numérico e deu certo!!! mas tem um problema... Agora pretendo fazer a mesma coisa para procurar o conteudo de um campo que seja texto (NomeProduto) e não numero... Aí eu já tentei, mas quando eu testo e coloco um nome no inputbox, ele dá erro pois pensa que aquilo q coloquei é o nome de um campo, e não o conteudo dele... Já quando coloco um numero, ele executa normalmente, mas como não tem nenhum nome que seja somente numero, aparece a msgbox (nome não cadastrado).

    Além disso, eu queria que quando eu digitasse na inputbox uma parte do nome do produto, ele encontrasse todos os registros que coincidissem com aquilo que foi digitado, mesmo que o nome não seja exatamente aquele... Existe alguma outra função que faça isso sem ser o FindFirst? Por favor, me mandem um exemplo prático!!!!!!!

    Obrigado!!!

  11. Olá Pessoal

    Estou montando um form que mostra o conteudo de uma base de dados em access 2000 (Uso o service Pack 6). Como a base de dados é muito grande, estou tentando montar um botão com uma rotina que pesquise o conteudo de um campo de codigo de um banco de dados e mostre o registro correspondente ao codigo nesse mesmo form. Estou usando o seguinte código:

    Private Sub cmdProcCod_Click()
    aux = InputBox("Digite abaixo o código do produto desejado:")
     If Val(aux) = Empty Then
      Exit Sub
     End If
     Data1.Recordset.FindFirst ("codigoproduto=" & aux)
     If Val(txtCodigo.Text) <> Val(aux) Then
      MsgBox "Codigo não cadastrado."
     End If
    End Sub
    

    Acontece que quando executo o botão, e digito na inputbox o numero do codigo q quero, aparece uma mensagem de erro escrita assim:

    Run-time Error '3464':

    tipo de dados imcompatível na expressão de critério

    Alguém pode me ajudar a acabar com esse erro? Se alguém quiser mais algumas especificações sobre como estou tentando montar a rotina, para poder me ajudar, estarei aqui para falar!!!

    Obrigado!

  12. Aew galera!

    To querendo fazer uma rotina onde, quando eu clicar num comandbutton, na label apareça um valor aleatório, mas que esse valor seja 1, 2 ou 3 apenas! Sei q existe uma função rnd q faz isso, mas não sei como utilizá-la... Alguém aí poderia me dar uma dica de como fazer o q estou tentando? Se houver alguma outra função também serve!

    Vlw Galera!

    Bruno

×
×
  • Criar Novo...