Skip to main content

AccessTr.neT


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

Oğuz Türkyılmaz
Oğuz Türkyılmaz
12
1593

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

Çözüldü #1
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
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#2
(06/03/2020, 12:09)Oğuz Türkyılmaz yazdı: .Fields("IslemTuru") = Me.IslemTuru_CBO.Column(0)
.Fields("IslemTuru") = "Alacak"
şeklinde denediniz mi
Cevapla
#3
(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
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#4
Formu Yükledim
.rar ADO _ALACAK.rar (Dosya Boyutu: 35 KB | İndirme Sayısı: 5)
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#5
(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
Cevapla
#6
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
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da