Formdan Farklı Tabloya Veri Aktarma

11/01/2018, 19:45

alperadn01

arkadaşlar merhaba. ekte gönderdiğim örnekte dosya1 ismindeki formda arşivle isminde buton yardımıyla üzerinde bulunduğumuz kaydı arşive kaldırmak istiyorum. ancak bir uyarı veriyor çözemedim bu konuda yardıma ihtiyacım var teşekkür ederim
11/01/2018, 23:33

ozanakkaya

Merhaba,

Ekleme sorgusunda tarih alanı boş olursa hata verir. Bunun yerine ado kullan.


Dim rs As New ADODB.Recordset

rs.Open "dosyaarşiv", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

rs.AddNew
    
    rs("tc no") = Me.[tc no]
    rs("adı soyadı") = Me.[adı soyadı]
    rs("işe başlama") = Me.[işe başlama]
    rs("işten ayrılış") = Me.[işten ayrılış]
    
    rs.Update
Set rs = Nothing
    

    MsgBox ("Dosya,ARŞİV tablosuna eklendi")
    Me.Requery
    Me.Refresh
    DoCmd.GoToRecord , , acFirst

Zaten bu tablo yapısı ile çalışacak olsa bile çalışmaz. Yapılmaması Gereken Ölümcül Hatalar
 dosyaarşiv diye tablo adı, işe başlama diye de alan adı olmaz.
12/01/2018, 11:17

alperadn01

Çok teşekkür ederim. Bir sorum daha olacak. Tüm kayıtları rs("tc no") = Me.[tc no]
    rs
("adı soyadı") = Me.[adı soyadı]
    rs
("işe başlama") = Me.[işe başlama]
    rs
("işten ayrılış") = Me.[işten ayrılış] bu şekilde tek tek kodları yazmaktansa var olan mevcut kayıtların tamamını aynı anda aktarma  şansımız var mı? Tabii sadece üzerinde bulunduğumuz kayıt için
14/01/2018, 20:29

alperadn01

Muhakkak bir çözümü vardır sorumun. Yardımlarınızı bekliyorum. Teşekkür ederim şimdiden
14/01/2018, 21:09

ozanakkaya

Merhaba,

Bu yapı ile uygulamanı bir adım ileriye taşıyamazsın. Olmayacak yerlerde anlayamadığın hatalar vermeye başlayacak.

Formda, arşiv tablosuna aktarılacak verileri içeren metin kutusu ve açılan kutuların im özelliğine 1 yaz,

Butonun tıklandığında olayına aşağıdaki kodu ekle.

    'dosyaarşiv isimli tabloya kayıt işlemi yapılıyor

Dim GDenetim As Control

Dim rs As New ADODB.Recordset

rs.Open "dosyaarşiv", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

rs.AddNew

For Each GDenetim In Me

   If GDenetim.Tag = 1 Then
     
      rs(GDenetim.ControlSource) = GDenetim.Value
     
   End If
   
Next GDenetim

rs.Update

Set rs = Nothing
   

MsgBox ("Dosya,ARŞİV tablosuna eklendi")
Me.Requery
Me.Refresh
DoCmd.GoToRecord , , acFirst
14/01/2018, 21:38

alperadn01

(14/01/2018, 21:09)ozanakkaya yazdı: Merhaba,

Bu yapı ile uygulamanı bir adım ileriye taşıyamazsın. Olmayacak yerlerde anlayamadığın hatalar vermeye başlayacak.

Formda, arşiv tablosuna aktarılacak verileri içeren metin kutusu ve açılan kutuların im özelliğine 1 yaz,

Butonun tıklandığında olayına aşağıdaki kodu ekle.

    'dosyaarşiv isimli tabloya kayıt işlemi yapılıyor

Dim GDenetim As Control

Dim rs As New ADODB.Recordset

rs.Open "dosyaarşiv", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

rs.AddNew

For Each GDenetim In Me

   If GDenetim.Tag = 1 Then
     
      rs(GDenetim.ControlSource) = GDenetim.Value
     
   End If
   
Next GDenetim

rs.Update

Set rs = Nothing
   

MsgBox ("Dosya,ARŞİV tablosuna eklendi")
Me.Requery
Me.Refresh
DoCmd.GoToRecord , , acFirst

harikasın devrem teşekkür ederim