ERRO AO DELETAR VB6

REINALDOSPINDOL 11/09/2013 20:16:48
#428725
Olá pessoal.

é o seguinte, tenho a tabela de pedidomaterial e pedidoitens, e um botão de exclusão para quando preciso excluir um pedido, por exemplo, todos os itens que estão no pedido 000008 vão ser excluídos junto com o pedido. Fiz um select para quando excluir o pedido, ele exclua também os itens desse mesmo pedido. Só que está dando erro nessa linha:

rsitens.Open stritem, adoitens, adOpenDynamic, adLockPessimistic
(Erro: tipo de dados incompatível)


Segue o código do botão todo:

Private Sub Excluir_Click()
Dim ans As String, str As String, stritem As String
ans = MsgBox([Ô]Excluir o pedido?[Ô], vbCritical + vbYesNo, [Ô]Exclusão de Endereço[Ô])
If ans = vbYes Then
Set rspedido = Nothing
Set rsitens = Nothing
rsitens.CursorLocation = adUseClient
rspedido.CursorLocation = adUseClient
str = [Ô]select * from pedidomaterial[Ô]
stritem = [Ô]delete from pedidoitens where númeropedido = [Ô] & txtpedido.Text
rspedido.Open str, adopedido, adOpenDynamic, adLockPessimistic
rsitens.Open stritem, adoitens, adOpenDynamic, adLockPessimistic
rspedido.Delete adAffectCurrent
rsitens.Delete
End If
rspedido.MoveLast
rsitens.MoveLast
If rsitens.EOF = True Then
rsitens.MoveFirst
End If
rsitens.Close
datadodia.Text = Date
txtpedido.Text = [Ô][Ô]
cbofornecedores.Text = [Ô][Ô]
masktel.Text = [Ô][Ô]
txtvendedor.Text = [Ô][Ô]
cbopgto.Text = [Ô][Ô]
optspy.Value = False
optspindola.Value = False
maskentrega.Text = [Ô][Ô]
txttotalpedido.Text = [Ô][Ô]
End Sub

Obrigado pela ajuda!
NILTON.VIANNA 11/09/2013 20:58:19
#428729
Faz assim que funciona

[ô]// Excluir dados
Private Sub GBExcluir_Click()

Dim adCmdPedidos As New ADODB.Command
Dim reSp As Byte
Dim PedidoID As Long

PedidoID = Val(txtPedidoID.Text)
If PedidoID = 0 Then Exit Sub
reSp = MsgBox([Ô]Confirma a exclução de [Ô] & txtNome & [Ô] ! [Ô], vbYesNo + vbInformation, [Ô] Excluir Pedido[Ô])

If reSp = 7 Then
Exit Sub
End If

On Error Resume Next

With adCmdPedidos
Set .ActiveConnection = CnSql
.CommandType = adCmdText
.Prepared = True

.CommandText = [Ô]Delete From Cad_Pedido Where PedidoID =[Ô] & PedidoID
.Execute

.CommandText = [Ô]Delete From Cad_PedidoItens Where PedidoID =[Ô] & PedidoID
.Execute

.CommandText = [Ô]Delete From Cad_Faturas Where PedidoID =[Ô] & PedidoID
.Execute

.CommandText = [Ô]Delete From Cad_FCompra Where PedidoID =[Ô] & PedidoID
.Execute

End With
Set adCmdPedidos = Nothing

End Sub
FILMAN 11/09/2013 21:14:14
#428731
Tente fazer assim, ao inves de você colocar rspedido.CursorLocation = adUseClient faça isso na abertura da conexão e não do recordset

adopedido.CursorLocation = adUseClient
adoitens.CursorLocation = adUseClient
REINALDOSPINDOL 12/09/2013 08:30:52
#428742
Rapaziada, obrigado pela ajuda. Consegui fazer funcionar como queria.

Mudei meu select para deletar com o like:
stritem = [Ô]delete from pedidoitens where númeropedido like [ô][Ô] & txtpedido.Text & [Ô][ô][Ô]


Abraço
Tópico encerrado , respostas não são mais permitidas