AJUDA COM UMA ROTINA

ELMO01 30/06/2010 16:46:47
#346162
Em meu programa, tenho dois botões que move para o próximo registro ou retorna para o registro anterior, só que quando clico em um destes botões o sistema não vai para o próxima registro ou retorna, fica parado. Então coloquei uma RecordCount para verificar se a quantidade de registro e ele me retorna 0, mas o banco de dados está completo.

Em seguida mostro a função do meu sistema
*
*
*
Private Sub Cmd_Antes_Click()
If MdAsso02.RecordCount > 0 Then
MdAsso02.MoveNext
If MdAsso02.State = 1 Then
If Not MdAsso02.EOF Then
Frm_Sec001.StatusBar1.Panels(5) = [Ô]...Aguarde!![Ô]
Preenche_Campos
Frm_Sec001.StatusBar1.Panels(5) = [Ô][Ô]
Else
Frm_Sec003.Enabled = False
ret = MessageBox(0, [Ô]Fim de Arquivo[Ô], [Ô]Atenção...[Ô], MB_OKCANCEL)
If ret = 1 Then
Frm_Sec003.Enabled = True
End If
MdAsso02.MovePrevious
End If
End If
Else
ret = MessageBox(0, [Ô]Nenhum Registro Adicionado[Ô], [Ô]Atenção...[Ô], MB_OKCANCEL)
End If
End Sub

Private Sub Cmd_Depois_Click()
If MdAsso02.RecordCount <> 0 Then
MdAsso02.MovePrevious
If MdAsso02.State = 1 Then
If Not MdAsso02.BOF Then
Frm_Sec001.StatusBar1.Panels(5) = [Ô]...Aguarde!![Ô]
Preenche_Campos
Frm_Sec001.StatusBar1.Panels(5) = [Ô][Ô]
Else
Frm_Sec003.Enabled = False
ret = MessageBox(0, [Ô]Início de Arquivo[Ô], [Ô]Atenção...[Ô], MB_OKCANCEL)
If ret = 1 Then
Frm_Sec003.Enabled = True
End If
MdAsso02.MoveNext
End If
End If
Else
ret = MessageBox(0, [Ô]Nenhum Registro Adicionado[Ô], [Ô]Atenção...[Ô], MB_OKCANCEL)
End If
End Sub
*
* Abertura do banco de dados
*
Public Sub Abre_Ass02()
Set Conexao03 = New ADODB.Connection
Conexao03.ConnectionTimeout = 60
Conexao03.CommandTimeout = 400
Conexao03.CursorLocation = adUseClient
Conexao03.Open [Ô]DRIVER={MySQL ODBC 5.1 Driver};[Ô] _
& [Ô]user ID=[Ô] & USUARI _
& [Ô];database=[Ô] & ARQBAS _
& [Ô];password=[Ô] & SENHOS _
& [Ô];server=[Ô] & IIf(SENHOS <> [Ô][Ô], HOSTMA, IPSMAQ) _
& [Ô];option=[Ô] & OPCOES
MdAsso02.CursorLocation = adUseClient
MdAsso02.Open [Ô]SELECT * FROM AQ_ASS02[Ô], Conexao03, adOpenDynamic, adLockOptimistic
End Sub


Pessoal o que está de errado nestas funções

Obrigado,












LIZANDER 30/06/2010 21:32:37
#346193
Já tentou compactar e reparar o banco de dados no access?
ELMO01 01/07/2010 06:49:49
#346206
Lizander - não estou utilizando o Access como banco de dados mais sim MySql
JCARLOS 01/07/2010 09:01:13
#346219
Resposta escolhida
tenta tirar do código as linhas:
If MdAsso02.RecordCount <> 0 Then
If MdAsso02.State = 1 Then
e seus respectivos endif's pra ver o resultado.
ELMO01 01/07/2010 11:33:29
#346247
Carlos, se retirar estas duas linhas, quando o programa passar pela instrução MdAsso02.MoveNext, dá erro.
MARCELO.TREZE 01/07/2010 12:11:49
#346257
colega o problema está na abertura do banco

bom pelo menos já vi isto algumas vezes

tente alterar para teste a forma de abertura

de:

MdAsso02.Open [Ô]SELECT * FROM AQ_ASS02[Ô], Conexao03, [txt-color=#e80000]adOpenDynamic[/txt-color], adLockOptimistic

para:

MdAsso02.Open [Ô]SELECT * FROM AQ_ASS02[Ô], Conexao03, [txt-color=#e80000]adOpenKeyset[/txt-color], adLockOptimistic

e teste o recordcount


ELMO01 01/07/2010 14:06:33
#346278
Marcelo - o recordcount continua mostrando 0, mas estão cadastrados em meu banco de dados exitem 4.511 registro
Tópico encerrado , respostas não são mais permitidas