Olá,
Tenho a sub abaixo no access para testar se uma tabela já tem um registro que quero incluir.
CODE
'Verifica se o Registro existe no Morto caso exista não executa o Arquivo, pois dará Duplicidade
Dim IDsEncontrados As Recordset
If Not IsNull(Me.RG) Then
strSQL = " SELECT rg FROM tabela2 WHERE rg = " & Me.RG & ""
Set IDsEncontrados = CurrentDb.OpenRecordset(strSQL)
End If
If IDsEncontrados.RecordCount <> 0 Then ' Encontrou RG no Morto
MsgBox "Esse Registro já existe no morto, vou abrir a ficha do Morto!!" & Chr(13) & "E nela você deverá excluir o registro desse RG" & Chr(13) & " e depois repetir a operação de Arquivar no Morto, OK ?", vbInformation, "Aviso já existe no Morto"
DoCmd.OpenForm "morto", acNormal, , "rg = " & IDsEncontrados("rg")
Exit Sub
Else
MsgBox "Pode arquivar no morto que não tem duplicidade", vbInformation, " Aviso"
'End If
End If
Tenho a sub abaixo em um projeto VB6 para incluir o registro em outra tabela (ela não verifica se já existe na outra) se tiver dá erro.
Quero adaptar aquele código acima na minha sub abaixo para fazer o teste antes de executar a inclusão.
CODE
Private Sub Arquivar_Click()
Dim strNOME As String
Dim strRG As String
Dim lngCustID As Long
Dim lngNewSelIndex As Long
If lvwCustomer.SelectedItem Is Nothing Then
MsgBox "Não tem Nome selecionado para Arquivar.", _
vbExclamation, _
"ARQUIVAR - MORTO"
Exit Sub
End If
With lvwCustomer.SelectedItem
strNOME = .text
strRG = .SubItems(mlngCUST_RG_IDX)
lngCustID = CLng(.SubItems(mlngCUST_ID_IDX))
End With
If MsgBox("Você tem certeza que quer Arquivar Nome '" _
& strNOME & " " & strRG & "'?", _
vbYesNo + vbQuestion, _
"Confirma Exclusão") = vbNo Then
Exit Sub
End If
mobjCmd.CommandText = "INSERT INTO Morto SELECT * FROM Customer WHERE CustID = " & lngCustID
mobjCmd.Execute
mobjCmd.CommandText = "DELETE FROM Customer WHERE CustID = " & lngCustID
mobjCmd.Execute
With lvwCustomer
If .SelectedItem.Index = .ListItems.Count Then
lngNewSelIndex = .ListItems.Count - 1
Else
lngNewSelIndex = .SelectedItem.Index
End If
.ListItems.Remove .SelectedItem.Index
If .ListItems.Count > 0 Then
Set .SelectedItem = .ListItems(lngNewSelIndex)
lvwCustomer_ItemClick .SelectedItem
Else
ClearCurrRecControls
End If
End With
' Informa o total de registros do bd
Set mobjRst = New ADODB.Recordset
mobjRst.CursorLocation = adUseClient
mobjRst.Open "Select * From Customer", mobjConn, adOpenKeyset, adLockOptimistic, adCmdText
Label25.Caption = "Total de Registros = " & mobjRst.RecordCount
End Sub
Na General declarations esta assim
CODE
Option Explicit
Private mobjConn As ADODB.Connection
Private mobjCmd As ADODB.Command
Private mobjRst As ADODB.Recordset
Como faço para incluir a sub do access no inicio da sub arquivar para fazer a verificação antes de prosseguir com a inclusão e não dar o erro?
Os comandos da sub do access tem que ser modificados? qual os comando que tem que ser trocados para o vb reconhecer?
Obrigado
Flecha