Bir Tablodan Veriler Silinirken Aynı Anda Diger Tabloya Aktarılması

21/06/2021, 17:45

truhi

Merhaba,
Aşağıdai kodda Excel ortamından ADO ile tablodan bir satırı siliyoruz,
Benim isteiğim silinen bu satırın aynı anda aynı yapıdaki diğer bir tabloya TblCariArsiv otomatik olarak aktarılması;
ilginie şimdiden teşekkürler,

Kod:
Sub caridelete()
Dim cn As New ADODB.Connection, rs As ADODB.Recordset
Dim mysqlSt1 As String
Dim carikodu As String

carikodu = cCari1.TextBox1.Value

If carikodu = "" Then
    MsgBox ("Cari kodu boş bırakılamaz")
    Exit Sub
End If

Baglan

mysqlSt1 = "DELETE * FROM TblCari WHERE (((TblCari.Cari_Kodu)='" & carikodu & "'));"

Set cn = New ADODB.Connection
With cn
    .ConnectionString = Con1
    .Open
End With

cn.Execute mysqlSt1

cn.Close
Set cn = Nothing

Con1 = ""

Call caritblupdate

MsgBox "Silme işlemi tamamlandı", vbInformation

End Sub
23/06/2021, 05:28

feraz

(21/06/2021, 17:45)truhi yazdı: Merhaba,
Aşağıdai kodda Excel ortamından ADO ile tablodan bir satırı siliyoruz,
Benim isteiğim silinen bu satırın aynı anda aynı yapıdaki diğer bir tabloya TblCariArsiv otomatik olarak aktarılması;
ilginie şimdiden teşekkürler,

Kod:
Sub caridelete()
Dim cn As New ADODB.Connection, rs As ADODB.Recordset
Dim mysqlSt1 As String
Dim carikodu As String

carikodu = cCari1.TextBox1.Value

If carikodu = "" Then
    MsgBox ("Cari kodu boş bırakılamaz")
    Exit Sub
End If

Baglan

mysqlSt1 = "DELETE * FROM TblCari WHERE (((TblCari.Cari_Kodu)='" & carikodu & "'));"

Set cn = New ADODB.Connection
With cn
    .ConnectionString = Con1
    .Open
End With

cn.Execute mysqlSt1

cn.Close
Set cn = Nothing

Con1 = ""

Call caritblupdate

MsgBox "Silme işlemi tamamlandı", vbInformation

End Sub
Merhaba.
Kodda rs tanımlanmış lakin kullanılmamış.cn.Execute mysqlSt1 yerine set rs=cn.execute()..... gibi olmalıydı mesela.
Normalde mantıken bir sub ekleriniz o satırı ilgili tabloya aktarırsınız ve ardında silme kodunu çağırırsınız.

Örnek olamadan biraz zor olur hayali olarak çözmek lakin dediğim gibi yapılır.
Birde execute yerine rs.open olarak çalıştırmak daha iyi olduğunu düşünüyorum ama anlatması zor
03/07/2021, 23:05

feraz

Konu çözüldü olarak taşınacaktır geri dönüş olmazsa.