Kayıt Da Insert Into Yerıne Ado Kullanırken Alana Girilecek Değeri Verme

1 2 3
06/03/2020, 12:09

Oğuz Türkyılmaz

Merhaba

Formdan T_UyeHesap tablosuna ıslem turunu Alacak olarak kaydettiğim kayıt işlemini ADO ile kayıt yaparken nasıl tanımlayabilirim. Teşekkürler
'CurrentDb.Execute " insert into T_UyeHesap " & _
'            " (  UyeNo,Tarih,IslemTuru, Tutar, Aciklama ) values " & _
              " ( " & Me.UyeNo_TXT & ",'" & Me.Tarih_TXT & "','Alacak', '" & Me.Tutar_TXT & "','" & Me.Aciklama_TXT & "')"
'End If
  

ADO 


Private Sub Kaydet_BTN_Click()

If MsgBox("Girdiğiniz veriler kaydedilecektir, Onaylıyormusunuz ", vbExclamation + vbYesNo, "Dikkat") = vbNo Then Exit Sub

Dim rstkayit As ADODB.Recordset
Dim strSQL As String

strSQL = "SELECT * FROM T_UyeHesap "
    Set rstkayit = New ADODB.Recordset
    rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
        With rstkayit
            If Not rstkayit.EOF Then
                .AddNew
                .Fields("Tarih") = Me.Tarih_TXT
                .Fields("UyeNo") = Me.UyeNo_TXT
                .Fields("IslemTuru") = Me.IslemTuru_CBO.Column(0)
                .Fields("Tutar") = Me.Tutar_TXT
                .Fields("Aciklama") = Me.Aciklama_TXT
                .Update
            End If
        End With
       
       
        strSQL = "SELECT * FROM T_UyeTahsilat "
    Set rstkayit = New ADODB.Recordset
    rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
        With rstkayit
            If Not rstkayit.EOF Then
                .AddNew
                .Fields("UyeNo") = Me.UyeNo_TXT
                .Fields("GelirKodu") = Me.GelirKodu_TXT
                .Fields("GelirTipi") = Me.GelirTipi_TXT
                .Fields("TaksitAyKapama") = Me.TaksitAyKapama_CBO.Column(0)
                .Fields("Tarih") = Me.Tarih_TXT
                .Fields("AidatTutar") = Me.AidatTutar_TXT
                .Fields("Aciklama") = Me.Aciklama_TXT
                .Update
            End If
        End With
                             
Dim fat As Control
    For Each fat In Me.Form.Controls
  Select Case fat.ControlType
      Case acTextBox 'Bütün metin kutularini bosalt
        fat.Value = ""
        Case acComboBox 'bütün açilan kutulari bosalt
          fat.Value = ""
          Case acCheckBox
              fat.Value = "0"
      End Select
     
      Next
   
    Tarih_TXT = Date
     
End Sub
06/03/2020, 12:17

berduş

(06/03/2020, 12:09)Oğuz Türkyılmaz yazdı: .Fields("IslemTuru") = Me.IslemTuru_CBO.Column(0)
.Fields("IslemTuru") = "Alacak"
şeklinde denediniz mi
06/03/2020, 12:27

Oğuz Türkyılmaz

(06/03/2020, 12:17)berduş yazdı:
(06/03/2020, 12:09)Oğuz Türkyılmaz yazdı: .Fields("IslemTuru") = Me.IslemTuru_CBO.Column(0)
.Fields("IslemTuru") = "Alacak"
şeklinde denediniz mi

Evet Denemiştim Sn@berduş hata vermişti
06/03/2020, 12:34

Oğuz Türkyılmaz

Formu Yükledim
06/03/2020, 13:33

ozanakkaya

(06/03/2020, 12:27)Oğuz Türkyılmaz yazdı: hata vermişti


Lütfen bu tür sorularınızda aldığınız hatayı açıklamalı olarak yazın. Kodu aşağıdaki ile değiştirerek deneyin.

Private Sub Kaydet_BTN_Click()

If MsgBox("Girdiğiniz veriler kaydedilecektir, Onaylıyormusunuz ", vbExclamation + vbYesNo, "Dikkat") = vbNo Then Exit Sub

Dim rstkayit As ADODB.Recordset
Dim strSQL As String

strSQL = "SELECT * FROM T_UyeHesap "
    Set rstkayit = New ADODB.Recordset
    rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
        With rstkayit
                .AddNew
                .Fields("Tarih") = Me.Tarih_TXT
                .Fields("UyeNo") = Me.UyeNo_TXT
                .Fields("IslemTuru") = "ALACAK" ' İşlem Turunu Alacak olarak kaydetmesi gerekiyor
                .Fields("Tutar") = Me.Tutar_TXT
                .Fields("Aciklama") = Me.Aciklama_TXT
                .Update
               
        End With
       
    rstkayit.Close
    Set rstkayit = Nothing
       
       
    strSQL = "SELECT * FROM T_UyeTahsilat "
    Set rstkayit = New ADODB.Recordset
    rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
        With rstkayit
                .AddNew
                .Fields("UyeNo") = Me.UyeNo_TXT
                .Fields("GelirKodu") = Me.GelirKodu_TXT
                .Fields("GelirTipi") = Me.GelirTipi_TXT
                .Fields("TaksitAyKapama") = Me.TaksitKapama_CBO.Column(0)
                .Fields("Tarih") = Me.Tarih_TXT
                .Fields("AidatTutar") = Me.Tutar_TXT
                .Fields("Aciklama") = Me.Aciklama_TXT
                .Update
        End With
                             
    rstkayit.Close
    Set rstkayit = Nothing
                             
Dim fat As Control
    For Each fat In Me.Form.Controls
  Select Case fat.ControlType
      Case acTextBox 'Bütün metin kutularini bosalt
        fat.Value = ""
        Case acComboBox 'bütün açilan kutulari bosalt
          fat.Value = ""
          Case acCheckBox
              fat.Value = "0"
      End Select
     
      Next
   
    Tarih_TXT = Date
     
End Sub
06/03/2020, 13:48

berduş

Oğuz bey
1 - ADO referansını eklememişsiniz
2 - Atama yaptığınız metin kutuları yada açılır kutular artık yok ismi değişmiş yada silinmiş olabilir
onun dışında 2. mesajda yazdığım kod çalıştı.

siz sürekli formda olmayan nesnelere atıfta bulunuyorsunuz yada referansı eklememiş oluyorsunuz hatalar da o nedenle çıkıyor.
mesela IslemTuru_CBO, TaksitAyKapama_CBO yada AidatTutar_TXT nesneleri yok ama siz onlara atıfta bulunduğunuzdan hata veriyor
iyi çalışmalar
1 2 3