Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gabrieldb

[Resolvido] Banco de Dados

Recommended Posts

Private Sub cmdSalvar_Click()
Dim rs As New adodb.Recordset

Call conexao

Conex.Execute ("insert into tabela(Nome) values('" & var_Nome & "')")

Tenta assim.

 

Funcionou tá gravando normal as informações no banco. Mais me surgiu outra dúvida não sei se abro outro tópico ou por aki mesmo vocês pode me ajudar como eu faço pra criar um botão pra pesquisar, editar e excluir esses dados armazenados no banco ? Se não for pedir demais galera...

Valeu pela paciência de todos.

 

Que bom que funcionou Gabriel. Você entendu que assim como está só irá gravar um campo e você precisa alterar para gravar os demais né?

 

Para pesquisar você fazer a mesma coisa que estava fazendo anteriormente (antes de usar insert), só que não irá colocar o addnew.

 

Você pode pesquisar de duas formas, trazendo todo seu banco ou somente uma linha específica utilizando where. Basta montar sua query de consulta da mesma forma que usa diretamente no banco de dados.

 

Para atualizar, você utiliza o update, no mesmo esquema que usou o insert:

 

Conex.Execute ("update tabela(Nome) set nome = '" & var_Nome & "' where idade = 17"

E para excluir, use delete:

 

Conex.Execute ("delete tabela(Nome) set nome = '" & var_Nome & "' where idade = 17"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi ainda...

alguém pode colocar como iria ficar as informações pra novo, pesquisar, atualizar e editar nesse meu código ?

 

Private Sub cmdSalvar_Click()
Dim rs As New ADODB.Recordset

Call conexao

Conex.Execute ("insert into clientes values('" & txtFantasia.Text & "','" & txtEstab.Text & "','" & txtRazao.Text & "','" & txtEndereco.Text & "','" & txtBairro.Text & "','" & txtCidade.Text & "','" & txtEstado.Text & "','" & txtCep.Text & "','" & txtCnpj.Text & "','" & txtInscricao.Text & "','" & txtCcm.Text & "','" & txtDianf.Text & "','" & txtImplant.Text & "','" & txtVenc.Text & "','" & txtFone1.Text & "','" & txtFone2.Text & "','" & txtFax.Text & "','" & txtSite.Text & "','" & txtEmail.Text & "')")
End Sub

 

 

Se alguem puder posta ae

Valeu pessoal!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi ainda...

alguém pode colocar como iria ficar as informações pra novo, pesquisar, atualizar e editar nesse meu código ?

 

Private Sub cmdSalvar_Click()
Dim rs As New ADODB.Recordset

Call conexao

Conex.Execute ("insert into clientes values('" & txtFantasia.Text & "','" & txtEstab.Text & "','" & txtRazao.Text & "','" & txtEndereco.Text & "','" & txtBairro.Text & "','" & txtCidade.Text & "','" & txtEstado.Text & "','" & txtCep.Text & "','" & txtCnpj.Text & "','" & txtInscricao.Text & "','" & txtCcm.Text & "','" & txtDianf.Text & "','" & txtImplant.Text & "','" & txtVenc.Text & "','" & txtFone1.Text & "','" & txtFone2.Text & "','" & txtFax.Text & "','" & txtSite.Text & "','" & txtEmail.Text & "')")
End Sub

 

 

Se alguem puder posta ae

Valeu pessoal!

Pode finalizar esse tópico aki vou abrir outro tópico vai ficar mais fácil pra alguém me ajudar...aki tem muita coisa...

valeu pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu código pra abrir os registro ficou assim :

 

Private Sub cmdEdit_Click()
Dim rs As New ADODB.Recordset

Call conexao

Conex.CursorLocation = adUseClient

rs.Open "select * from clientes", Conex, adOpenDynamic, adLockOptimistic

txtFantasia.Text = rs("nome")
txtEstab.Text = rs("estab")
txtRazao.Text = rs("razao")
txtEndereco.Text = rs("endereco")
txtBairro.Text = rs("bairro")
txtCidade.Text = rs("cidade")
txtEstado.Text = rs("estado")
txtCep.Text = rs("cep")
txtCnpj.Text = rs("cnpj")
txtInscricao.Text = rs("inscricao")
txtCcm.Text = rs("ccm")
txtFone1.Text = rs("fone")
txtFone2.Text = rs("fonee")
txtFone3.Text = rs("foneee")
txtFax.Text = rs("fax")
txtResp.Text = rs("resp")
txtCargo.Text = rs("cargo")
txtEmail.Text = rs("email")
txtSite.Text = rs("site")

rs.Update
End Sub

Mais só abre o primeiro registro da tabela ...eu queria abrir todos e mostrar eles tmb em um DataGrid...tem como ?

Valeu pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza Gabriel.

 

Primeiramente pode arrancar esse rs.update dai que não está servindo para nada.

 

Agora para passar para o próximo registro, vamos fazer o seguinte.

 

Primeiro, você terá que declarar sua variável como private, e não mais como dim. Para declarar como private, tem que estar fora de uma sub ou function, acima de todo seu código.

(private rs as adodb.recordset).

 

Depois coloque dois botões em sua tela, um próximo e um anterior.

No código do próximo ponha o seguinte código:

 

rs.movenext

txtFantasia.Text = rs("nome")
txtEstab.Text = rs("estab")
txtRazao.Text = rs("razao")
txtEndereco.Text = rs("endereco")
txtBairro.Text = rs("bairro")
txtCidade.Text = rs("cidade")
txtEstado.Text = rs("estado")
txtCep.Text = rs("cep")
txtCnpj.Text = rs("cnpj")
txtInscricao.Text = rs("inscricao")
txtCcm.Text = rs("ccm")
txtFone1.Text = rs("fone")
txtFone2.Text = rs("fonee")
txtFone3.Text = rs("foneee")
txtFax.Text = rs("fax")
txtResp.Text = rs("resp")
txtCargo.Text = rs("cargo")
txtEmail.Text = rs("email")
txtSite.Text = rs("site")

E no código do anterior ponha:

rs.moveprevious

txtFantasia.Text = rs("nome")
txtEstab.Text = rs("estab")
txtRazao.Text = rs("razao")
txtEndereco.Text = rs("endereco")
txtBairro.Text = rs("bairro")
txtCidade.Text = rs("cidade")
txtEstado.Text = rs("estado")
txtCep.Text = rs("cep")
txtCnpj.Text = rs("cnpj")
txtInscricao.Text = rs("inscricao")
txtCcm.Text = rs("ccm")
txtFone1.Text = rs("fone")
txtFone2.Text = rs("fonee")
txtFone3.Text = rs("foneee")
txtFax.Text = rs("fax")
txtResp.Text = rs("resp")
txtCargo.Text = rs("cargo")
txtEmail.Text = rs("email")
txtSite.Text = rs("site")

Teste e diga o que houve.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claudio dá o seguinte erro

 

Run-time error'91':

 

Object variable or With block variable not set

 

e o debug aponta pro

rs.MoveNext

Compartilhar este post


Link para o post
Compartilhar em outros sites

Arranque isso:

 

Call conexao

Conex.CursorLocation = adUseClient

rs.Open "select * from clientes", Conex, adOpenDynamic, adLockOptimistic

Do seu botão e ponha no form_load.

 

Acrescentando set rs = new adodb.recordset e na declaração da variavel (private tira a palavra new.

 

Ficando mais ou menos assim:

 

private rs as adodb.recordset

private sub form_load

Call conexao

Conex.CursorLocation = adUseClient

rs = new adodb.recordset
rs.Open "select * from clientes", Conex, adOpenDynamic, adLockOptimistic

end sub

E depois vem abaixo os códigos de seus botões, não necessariamente abaixo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Arranque isso:

 

Call conexao

Conex.CursorLocation = adUseClient

rs.Open "select * from clientes", Conex, adOpenDynamic, adLockOptimistic

Do seu botão e ponha no form_load.

 

Acrescentando set rs = new adodb.recordset e na declaração da variavel (private tira a palavra new.

 

Ficando mais ou menos assim:

 

private rs as adodb.recordset

private sub form_load

Call conexao

Conex.CursorLocation = adUseClient

rs = new adodb.recordset
rs.Open "select * from clientes", Conex, adOpenDynamic, adLockOptimistic

end sub

E depois vem abaixo os códigos de seus botões, não necessariamente abaixo.

 

Fiz tudo isso ai...ele retorna um erro pro form_load

Compile error:

 

Invalid use of property

 

Private Sub Form_Load() 

Call conexao

Conex.CursorLocation = adUseClient

rs = New adodb.Recordset  'Aponta pro rs=
rs.Open "select * from clientes", Conex, adOpenDynamic, adLockOptimistic

End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz uma gambiarra aki mais só funciona o botão próximo só aparece dois registros e quando clico no voltar ele dá um erro...

 

Run-time error '3021':

BOF ou EOF são verdadeiros, ou o registro atual foi excluído.A

operaçõ solicitada pelo aplicativo requer um registro atual.

 

Esse foi o código do botão Proximo...rsrs

 

Private Sub cmdProximo_Click()
Dim rs As New ADODB.Recordset

Call conexao

Conex.CursorLocation = adUseClient

rs.Open "select * from clientes", Conex, adOpenDynamic, adLockOptimistic
rs.MoveNext

txtFantasia.Text = rs("nome")
txtEstab.Text = rs("estab")
txtRazao.Text = rs("razao")
txtEndereco.Text = rs("endereco")
txtBairro.Text = rs("bairro")
txtCidade.Text = rs("cidade")
txtEstado.Text = rs("estado")
txtCep.Text = rs("cep")
txtCnpj.Text = rs("cnpj")
txtInscricao.Text = rs("inscricao")
txtCcm.Text = rs("ccm")
txtFone1.Text = rs("fone")
txtFone2.Text = rs("fonee")
txtFone3.Text = rs("foneee")
txtFax.Text = rs("fax")
txtResp.Text = rs("resp")
txtCargo.Text = rs("cargo")
txtEmail.Text = rs("email")
txtSite.Text = rs("site")
End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos com calma.

 

No primeiro erro, a linha está errada mesmo, é assim:

set rs = new adodb.recordset

Faltou o 'set'

 

Quanto ao segundo erro, sabia que ia chegar lá, se chegou está no caminha certo.

 

Funciona assim, o movenext vai passando sempre para o próximo registro, mas uma hora irão acabar os registros, e foi isso que aconteceu. Quando acaba, você precisa tratar para evitar esse tipo de erro.

Tratamos assim, no botão avançar, o erro será EOF (end of file = fim de arquivo).

 

Então nesse caso faz-se assim:

 

rs.movenext

if rs.eof then
   rs.movelast
end if

'código para preencher a tela

O movelast move para o último registro, independente de onde estiver. Então quando chegar no fim de arquivo ele vai mover para o último, inpedindo de ocorrer o erro.

 

E para o botão anterior é o mesmo princípio, só que ele não dará EOF e sim BOF (begin of file=início de arquivo).

 

Para tratar o príncipio é o mesmo:

 

rs.movenext

if rs.bof then
   rs.movefirst
end if

'código para preencher a tela

Tente ai e posta o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boaa...funcionou certinho os dois botões ANTERIOR e PRÓXIMO....

 

Vou encher mais um pouco você Cláudio...como faço agora pra Excluir os registros do BD e pra tipo quando eu clicar no botão Novo ficar liberado pra um novo registro ?

 

Valeu cara...você tá me ajudando muito...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para excluir é semelhante a incluir. Monte uma query de exclusão:

 

defete tabela where nome = 'claudio'

Não entendi sua outra pergunta. Você quer saber como faz para deixar todas as caixas de texto em branco para inserir um novo registro?

 

Se for basta fazer :

 

txtExemplo = empty

Em todas as caixas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para excluir é semelhante a incluir. Monte uma query de exclusão:

 

defete tabela where nome = 'claudio'

Não entendi sua outra pergunta. Você quer saber como faz para deixar todas as caixas de texto em branco para inserir um novo registro?

 

Se for basta fazer :

 

txtExemplo = empty

Em todas as caixas.

Cláudio ficaria assim o código pra excluir ?

Private Sub cmdExcluir_Click()
Dim rs As New adodb.Recordset

Call conexao
Conex.Execute ("delete clientes where ('nome','estab','razao','endereco','bairro','cidade','estado','cep','cnpj','inscricao','ccm','fone','fone2','fone3','fax','resp', 'cargo','email','site') ")
End Sub

E sobre minha pergunta é assim..tipo o botão salvar e os campos ficasse blokeado sabe...e quando eu clicasse em novo ele liberava o Salvar e os campos pra digitação .Entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, não é assim não.

 

Para excluir não é necessário informar todos os campos.

 

Vamos supor que você tem a tabela pessoas assim:

 

nome idade sexo

jose 23 m

maria 19 f

antonio 21 m

 

E quisesse excluir o jose. Ficaria assim:

 

delete pessoas where nome = 'jose'

Simples né?

 

E quanto a outra pergunta, você precisa trabalhar com enabled. É uma propriedade que quase todos os objetos têm. Dê uma procurada a respeito, é simples.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, não é assim não.

 

Para excluir não é necessário informar todos os campos.

 

Vamos supor que você tem a tabela pessoas assim:

 

nome idade sexo

jose 23 m

maria 19 f

antonio 21 m

 

E quisesse excluir o jose. Ficaria assim:

 

delete pessoas where nome = 'jose'

Simples né?

Simples mesmo mais nesse caso só iria excluir sempre a coluna 'jose' e as outras eu teria que mudar toda vez no código?

Eu tentei aki mais deu erro :

Compile error:

Syntax error

 

Meu botão ficou assim.

Private Sub cmdExcluir_Click()

delete clientes where nome = 'De Luca'

End Sub

Cara esse sisteminha tá me dando um trabalho do c*****..rsrs

 

Valeu pela paciência e ajudar ae Cláudio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use

 

Conex.Execute("delete from clientes where nome = 'jose'")

Vai excluir todos os registros que a coluna nome seja igual a jose

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use

 

Conex.Execute("delete from clientes where nome = 'jose'")

Vai excluir todos os registros que a coluna nome seja igual a jose

Scorpio deu certo aki brother

Mais nesse caso só exclui sempre a coluna referenciada que é 'jose' e as outras eu teria que mudar toda vez no código? Como eu faço pra excluir as outras ?

Compartilhar este post


Link para o post
Compartilhar em outros sites
O delete ele exclue toda a linha, não é necessário indicar colunas. basta cumprir a condição após o where.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O delete ele exclue toda a linha, não é necessário indicar colunas. basta cumprir a condição após o where.

Scorpio deu certo aki brother

Mais nesse caso só exclui sempre a coluna referenciada que é 'jose' e as outras eu teria que mudar toda vez no código? Como eu faço pra excluir as outras ?

Ops acabei me expressando errado foi mal....eu coloquei coluna mais o certo era linha

Eu quiz dizer assim...ele só exclui a linha que tiver 'jose' e as outras com outros nomes eu teria que pôr no código ? Como eu faço ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.