ERRO VB6 E ACCESS
Citação::
como ficou o código agora poste pra gente
Private Sub Command1_Click()
Dim SQL As String, CONEXAO As New ADODB.Connection, RS As Recordset
CONEXAO.Open [Ô]Driver={Microsoft Access Driver (*.mdb)};Dbq=[Ô] & App.Path & [Ô]\files\ordenaAlertas.mdb;Uid=Admin;Pwd=;[Ô]
CONEXAO.Execute ([Ô]INSERT INTO Ordem (Prioridade, Comando, Status) VALUES (2, [ô]comando .bat que envia alerta prioridade 2[ô], [ô]Aguardando[ô])[Ô])
Set RS = CONEXAO.Execute([Ô]SELECT TOP 1 status FROM Ordem[Ô])
startVerifica1:
If Not (RS.EOF And RS.BOF) Then
Select Case RS!Status
Case Is = [Ô]Enviando[Ô]
Sleep 10000
GoTo startVerifica1
Case Is = [Ô]Aguardando[Ô]
CONEXAO.Execute ([Ô]UPDATE Ordem SET status=[ô]Enviando[ô] WHERE status=[ô]Aguardando[ô][Ô])
Shell App.Path & [Ô] este.bat[Ô]
Sleep 10000
CONEXAO.Execute ([Ô]DELETE * FROM Ordem WHERE status=[ô]Enviando[ô][Ô])
CONEXAO.Close
End Select
End If
End Sub
você possui um campo id ou código que seja único.
pois ai bastaria você usa-lo para o delete exemplo
CONEXAO.Execute ([Ô]DELETE * FROM Ordem WHERE status=[ô]Enviando[ô] and codigo=[Ô] & RS!codigo)
compreendeu a idéia
pois ai bastaria você usa-lo para o delete exemplo
CONEXAO.Execute ([Ô]DELETE * FROM Ordem WHERE status=[ô]Enviando[ô] and codigo=[Ô] & RS!codigo)
compreendeu a idéia
MARCELO-TREZE, entendi sua ideia, porem não tenho um código que seja único, visto que preciso precisaria apagar a primeira linha, não importando o valor de uma id por exemplo.
Quando efetuado o Select TOP 1.... ele não deveria retornar somente essa linha? e o restante do código ser baseado somente nessa linha?, veja o que está acontecendo.
A linha:
CONEXAO.Execute ([Ô]UPDATE Ordem SET status=[ô]Enviando[ô] WHERE status=[ô]Aguardando[ô][Ô]) está aplicando a todas as linhas, deveria ser apenas na primeira
Consequentemente a linha:
CONEXAO.Execute ([Ô]DELETE * FROM Ordem WHERE status=[ô]Enviando[ô][Ô]) irá apagar todos os dados da tabela.
Quando efetuado o Select TOP 1.... ele não deveria retornar somente essa linha? e o restante do código ser baseado somente nessa linha?, veja o que está acontecendo.
A linha:
CONEXAO.Execute ([Ô]UPDATE Ordem SET status=[ô]Enviando[ô] WHERE status=[ô]Aguardando[ô][Ô]) está aplicando a todas as linhas, deveria ser apenas na primeira
Consequentemente a linha:
CONEXAO.Execute ([Ô]DELETE * FROM Ordem WHERE status=[ô]Enviando[ô][Ô]) irá apagar todos os dados da tabela.
Tópico encerrado , respostas não são mais permitidas