BOTA PROCURAR

OMAR2011 25/10/2011 10:54:57
#387681

Private Sub Form_Load()
conecta
End Sub
JRABELO 25/10/2011 10:57:47
#387682
Já fiz isso !

Private Sub Form_Load()
conecta
End Sub

Não deu certo!
JRABELO 25/10/2011 11:33:44
#387689
Marcelo, não deu certo !!!

Essa query não executa o comando ( cn.execute SQL )


Private Sub cmdProcurar_Click(Index As Integer)

If txtNome2 = [Ô][Ô] Then
MsgBox [Ô]Favor informar o Nome do Aluno![Ô], vbInformation, [Ô]Escola Caminho Suave[Ô]
txtNome2.SetFocus
Exit Sub
End If

conecta

SQL = [Ô]select * from aluno where nome like [ô][Ô] & txtNome2.Text & [Ô]%[ô][Ô]
cn.Execute SQL

adoConsAluno.Refresh

End Sub
MARCELO.TREZE 25/10/2011 11:42:55
#387692
João vamos partir do principio, onde vc declara a conexão, é no mesmo form desta pesquisa?

pois o ideal seria fazer a conexão em um módulo, onde cn seria uma declaração global, porém o recordset, vc não precisa declarar em um módulo e sim so mente quando for utiliza-lo. vou elaborar um exemplo e logo postarei

JRABELO 25/10/2011 12:15:38
#387701
Modulo de Conexão é separado de todos os Form.

Public cn As ADODB.Connection
Public rs As ADODB.Recordset

Public Sub conecta()

Set cn = CreateObject([Ô]ADODB.Connection[Ô])
Set rs = CreateObject([Ô]ADODB.Recordset[Ô])

cn.Open [Ô]Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=Banco;User=root;Password=123;Option=3;[Ô]

End Sub

Public Sub desconecta()
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing

End Sub
MARCELO.TREZE 25/10/2011 12:40:25
#387704
então vamos fazer uma pequena alteração, primeiro cole em um módulo o seguinte código

Global CN As New ADODB.Connection


Public Sub conecta()

[ô] o if abaixo serve para verificar se a conexão esta aberta e se estiver ele a
[ô] fecha para evitar erros, isto é para o caso de vc esquecer de fechar a conexão em algum momento

If CN.State = 1 Then
CN.Close
Set CN = Nothing
End If

CN.Open [Ô]Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=Banco;User=root;Password=123;Option=3;[Ô]

End Sub


Public Sub desconecta()
rs.Close
CN.Close
Set rs = Nothing
Set CN = Nothing
End Sub


repare que não declarei o recordset, isto porque basta vc declara-lo somente quando for usar assim se por acaso precisar de mais de um recordset não tera'problema, resumindo

onde for usar o Recordset

Dim RS As recordset


agora as formas de uso,

para consultas basta setar o recordset, ex:

sSQL = [Ô]SELECT * FROM tabela WHERE campo =[ô][Ô] & seucampo.txt & [Ô][ô][Ô]
Set RS = CN.Execute(sSQL)


para inclusão alteração e exclusão ja não ha a necessidade de se ter um recordset, podendo fazer direto

[ô] alteração
CN.Execute [Ô]UPDATE tabela SET campo2 = [ô]valor2[ô], campo3 = [ô]valor3[ô] WHERE campo1 = [ô]1[ô][Ô]


[ô] inclusão
CN.Execute [Ô]INSERT INTO tabela (campo1,campo2,campo3) values ([ô]valor1[ô],[ô]valor2[ô],[ô]valor3[ô])[Ô]


[ô] exclusão
CN.Execute [Ô]DELETE FROM tabela WHERE campo1 = [ô]1[ô][Ô]


espero que da maneira acima seus problemas se resolvam

JRABELO 25/10/2011 13:02:39
#387710
Não deu Certo !!!
JRABELO 25/10/2011 13:49:13
#387714
O código todo do Formulário.

Public SQL As String

Private Sub cboSexo_DropDown()

cboSexo.Clear
cboSexo.AddItem [Ô]MASCULINO[Ô]
cboSexo.AddItem [Ô]FEMININO[Ô]

End Sub

Private Sub cboStatus_DropDown()

cboStatus.Clear
cboStatus.AddItem [Ô]ATIVO[Ô]
cboStatus.AddItem [Ô]INATIVO[Ô]

End Sub

Private Sub cmdAlterar_Click(Index As Integer)

If txtNome = [Ô][Ô] Then
MsgBox [Ô]Favor informar o Nome do Aluno![Ô], vbInformation, [Ô]Escola Caminho Suave[Ô]
txtNome.SetFocus
Exit Sub
End If


conecta

SQL = [Ô]UPDATE aluno SET Nome = [ô][Ô] & txtNome & [Ô][ô],sexo = [ô][Ô] & cboSexo & [Ô][ô],Nascimento = [ô][Ô] & mskData & [Ô][ô],Telefone =[ô][Ô] & mskTelefone & [Ô][ô],Situação =[ô][Ô] & cboStatus & [Ô][ô],Endereço =[ô][Ô] & txtEndereco & [Ô][ô],Bairro = [ô][Ô] & txtBairro & [Ô][ô],Cidade = [ô][Ô] & txtCidade & [Ô][ô] Where Nome = [ô][Ô] & txtNome & [Ô][ô][Ô]

cn.Execute SQL

MsgBox [Ô]Cadastro atualizado com Sucesso![Ô], vbInformation, [Ô]Atualizar[Ô]

txtNome = [Ô][Ô]
cboSexo.ListIndex = -1
mskData = [Ô]__/__/____[Ô]
cboStatus.ListIndex = -1
txtEndereco = [Ô][Ô]
txtBairro = [Ô][Ô]
txtCidade = [Ô][Ô]
mskTelefone.Text = [Ô](__)____-____[Ô]

adoAluno.Refresh

txtNome.SetFocus

End Sub

Private Sub cmdDelete_Click(Index As Integer)

If txtNome = [Ô][Ô] Then
MsgBox [Ô]Favor informar o Nome do Aluno![Ô], vbInformation, [Ô]Escola Caminho Suave[Ô]
txtNome.SetFocus
Exit Sub
End If

conecta

SQL = [Ô]delete from aluno where Nome = [ô][Ô] & txtNome & [Ô][ô][Ô]

cn.Execute SQL

MsgBox [Ô]Cadastro deletado com Sucesso![Ô], vbInformation, [Ô]Excluir[Ô]

txtNome = [Ô][Ô]
cboSexo.ListIndex = -1
mskData = [Ô]__/__/____[Ô]
cboStatus.ListIndex = -1
txtEndereco = [Ô][Ô]
txtBairro = [Ô][Ô]
txtCidade = [Ô][Ô]
mskTelefone.Text = [Ô](__)____-____[Ô]

adoAluno.Refresh

txtNome.SetFocus

desconecta

End Sub

Private Sub cmdFechar_Click(Index As Integer)
Unload Me
End Sub

Private Sub cmdFechar2_Click()
Unload Me
End Sub

Private Sub cmdSalvar_Click(Index As Integer)

If txtNome = [Ô][Ô] Then
MsgBox [Ô]Favor informar o Nome do Aluno![Ô], vbInformation, [Ô]Escola Caminho Suave[Ô]
txtNome.SetFocus
Exit Sub
End If

If mskData = [Ô]__/__/____[Ô] Then
MsgBox [Ô]Favor informar a Data de Nascimento![Ô], vbInformation, [Ô]Escola Caminho Suave[Ô]
mskData.SetFocus
Exit Sub
End If

If cboSexo.ListIndex = -1 Then
MsgBox [Ô]Favor informar o Sexo do Aluno![Ô], vbInformation, [Ô]Escola Caminho Suave[Ô]
cboSexo.SetFocus
Exit Sub
End If

If cboStatus.ListIndex = -1 Then
MsgBox [Ô]Favor informar o Status do Aluno![Ô], vbInformation, [Ô]Escola Caminho Suave[Ô]
cboStatus.SetFocus
Exit Sub
End If

If txtEndereco = [Ô][Ô] Then
MsgBox [Ô]Favor informar o Endereço![Ô], vbInformation, [Ô]Escola Caminho Suave[Ô]
txtEndereco.SetFocus
Exit Sub
End If

If txtBairro = [Ô][Ô] Then
MsgBox [Ô]Favor informar o Bairro![Ô], vbInformation, [Ô]Escola Caminho Suave[Ô]
txtBairro.SetFocus
Exit Sub
End If

If txtCidade = [Ô][Ô] Then
MsgBox [Ô]Favor informar a Cidade![Ô], vbInformation, [Ô]Escola Caminho Suave[Ô]
txtCidade.SetFocus
Exit Sub
End If

If mskTelefone.Text = [Ô](__)____-____[Ô] Then
MsgBox [Ô]Favor informar o Telefone![Ô], vbInformation, [Ô]Escola Caminho Suave[Ô]
mskTelefone.SetFocus
Exit Sub
End If


conecta

SQL = [Ô]select * from Aluno[Ô]
rs.Open SQL, cn, 3, 3

rs.AddNew
rs([Ô]Nome[Ô]) = UCase(txtNome)
rs([Ô]Nascimento[Ô]) = mskData
rs([Ô]Sexo[Ô]) = cboSexo
rs([Ô]Situação[Ô]) = cboStatus
rs([Ô]Endereço[Ô]) = UCase(txtEndereco)
rs([Ô]Bairro[Ô]) = UCase(txtBairro)
rs([Ô]Cidade[Ô]) = UCase(txtCidade)
rs([Ô]Telefone[Ô]) = mskTelefone
rs.Update

MsgBox [Ô]Cadastro Efetuado com Sucesso!!![Ô], vbInformation, [Ô]Escola Caminho Suave[Ô]

txtNome = [Ô][Ô]
cboSexo.ListIndex = -1
mskData = [Ô]__/__/____[Ô]
cboStatus.ListIndex = -1
txtEndereco = [Ô][Ô]
txtBairro = [Ô][Ô]
txtCidade = [Ô][Ô]
mskTelefone.Text = [Ô](__)____-____[Ô]

adoAluno.Refresh


End Sub

Private Sub cmdProcurar_Click(Index As Integer)

If txtNome2 = [Ô][Ô] Then
MsgBox [Ô]Favor informar o Nome do Aluno![Ô], vbInformation, [Ô]Escola Caminho Suave[Ô]
txtNome2.SetFocus
Exit Sub
End If

conecta

sSQL = [Ô]select * from aluno where nome like [ô][Ô] & txtNome2.Text & [Ô]%[ô][Ô]
Set rs = cn.Execute(sSQL)

datgConAluno.Refresh

End Sub

Private Sub Form_Load()

conecta

cboStatus = [Ô]ATIVO[Ô]

frmAluno.Height = 11205
frmAluno.Width = 16050

End Sub
TIAGOFAC 25/10/2011 14:37:18
#387728
If txtNome2.text = [Ô][Ô] Then
MsgBox [Ô]Favor informar o Nome do Aluno![Ô], vbInformation, [Ô]Escola Caminho Suave[Ô]
txtNome2.SetFocus
Exit Sub
End If

SQL = [Ô]select * from Aluno where Nome like [ô][Ô] & txtNome2.text & [Ô]%[ô][Ô]
cn.Execute SQL

separe o asterisco no select e acrescente .text na passagem de parametro da query.
JRABELO 26/10/2011 08:21:54
#387759
Tiago,

Não deu certo !!!
Página 4 de 5 [44 registro(s)]
Tópico encerrado , respostas não são mais permitidas