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

Msg De Erro


Guest Camilla

Pergunta

ola bom dia!!!

Estou fazendo uma pesquisa em um banco de dados Access pelo VB. Só que estou recebendo msg de erro quando executo. Está assim...

Private Sub cmd_Pesquisa_Click()

'***Declaração de SQL***

Dim espaco As Integer

Dim cada_palavra As String

Dim comp As Integer

Dim retirar As Integer

Dim strSelect As String

Dim busca As String

'***Retira os espaços a mais à esquerda e à direita da string de busca***

busca = txt_Pesquisar.Text

busca = Trim(busca)

'***Retira da string de busca cada uma das palavras existentes.***

Do Until InStr(1, busca, Chr(32)) = 0

'***Verificar em que posição está o espaço mais à esquerda.***

espaco = InStr(1, busca, Chr(32))

'***Retira da String apenas uma palavra

cada_palavra = Left(busca, espaco - 1)

'***Verifica o comprimento total da string***

comp = Len(busca)

'***Determina qual o comprimento depois de ter retirado uma palavra.***

retirar = comp - espaco

'***A string que vai passar a ser usada será a inicial menos a palavra já colocada na declaração de SQL.

busca = Right(busca, retirar)

Loop

'***Pega os registros***

Set rst1 = New Recordset

strSelect = "select nome, matricula from segurados where news LIKE '%" & cada_palavra & "%' and '%" & busca & "%'"

rst1.Open strSelect, conn1, adOpenStatic, adLockOptimistic

'***Percorre os registros da tabela***

If rst1.EOF = False Then

I = 1

rst1.MoveFirst

Do While rst1.EOF = False

MSFlexGrid1.Rows = I + 1

MSFlexGrid1.Col = 0

MSFlexGrid1.Row = I

MSFlexGrid1.Text = rst1.Fields("matricula")

MSFlexGrid1.Col = 1

MSFlexGrid1.Row = I

MSFlexGrid1.Text = rst1.Fields("nome")

rst1.MoveNext

I = I + 1

Loop

rst1.Close

Else

MsgBox "Nenhum nome foi encontrado", vbOKOnly

End If

End Sub

A msg de erro: Nenhum valor foi fornecido por um ou mais parametros.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Quando se faz uma SQL, você deve repetir o nome do campo, mesmo que queira testar dois valores para o mesmo. O correto aqui seria:

strSelect = "select nome, matricula from segurados where news LIKE '%" & cada_palavra & "%' and news LIKE '%" & busca & "%'"

Repare que o campo "news" aparece duas vezes (uma vez para cada uma das condições).

Abraços,

Graymalkin

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,4k
×
×
  • Criar Novo...