bom é uma consulta com like, buscando pelo nome do cliente, como a seguir:
Dim sql As String
sql = "Select codigo,razao,fones from [clientes]where [razao] like '%" & txttexto.Text & "%'"
sql = sql & "Order by [razao]"
Set Rs = New ADODB.Recordset
Rs.Open sql, Cnn, adOpenForwardOnly, adLockReadOnly
If Rs.EOF Then
aviso = MsgBox("Consulta sem sucesso!", vbCritical + vbOKOnly, "Futura - Aviso ao usuário")
Exit Sub
End If
Rs.MoveMin
While Not Rs.EOF
Set lista = lstnome.ListItems.Add(, , Rs.Fields("codigo"))
lista.SubItems(1) = (Rs.Fields("razao"))
If Not IsNull(Rs.Fields("fones")) Then lista.SubItems(2) = (Rs.Fields("fones"))
Rs.MoveNext
Wend
Rs.Close
Set Rs = Nothing
agora no mesmo esquema, se consulto pelo código, ou seja sem o like, não da erro, trago os dados todos na tela, altero e consigo atualizar, porém, se em seguida, buscar o mesmo registro e mandar salvar novamente, da um erro:
" A linha não pode ser localizada para atualização, alguns valores podem ter sido alterados, desde que ela foi lida pela ultima vez", então abaixo segue o código de atualização", então abaixo o código do botão Salvar/Atualizar:
Set Rs = New ADODB.Recordset
If Trim(txtcodigo.Text) <> Empty Then
Rs.CursorLocation = adUseClient
sql = " select * from clientes where codigo = " & txtcodigo & " "
Rs.Open sql, Cnn, adOpenKeyset, adLockOptimistic
Else
Rs.CursorLocation = adUseServer
Rs.Open "clientes", Cnn, adOpenKeyset, adLockOptimistic
Rs.AddNew
End If
' dados cadastrais
Rs!classe = cmbclasse.Text
Rs!cgc = txtcgc.Text
Rs!ie = txtrg.Text
Rs!razao = txtrazao.Text
Rs!apelido = txtape.Text
Rs!rua = txtrua.Text
Rs!comple = txtcomp.Text
Rs!bairro = txtbai.Text
Rs!cidade = cmbcid.Text
Rs!uf = cmbuf.Text
Rs!cep = txtcep.Text
Rs!fones = txtfone.Text
Rs!celular = txtcelular.Text
Rs!fax = txtfax.Text
Rs!email = txtemail.Text
Rs!web = txtweb.Text
Rs!cadastro = dtcad.Value
Rs!datanasc = dtnas.Value
Rs!obs = txtobs.Text
Rs.Update
Rs.Close
Set Rs = Nothing
aviso = MsgBox("Dados Atualizados", vbInformation + vbOKOnly, "Futura - aviso ao usuário")
limpa
OBS: LEMBRANDO QUE ESTES CÓDIGOS, SÃO OS QUE USO PARA O ACCESS.