Skip to main content

AccessTr.neT


Kriterlere Göre Kayıt Güncelleme

Kriterlere Göre Kayıt Güncelleme

Çözüldü #1
Tüm arkadaşlarıma iyi akşamlar dilerim. Aşağıda gönderdiğim Vb kodunda formdaki kriterlere göre ilgili tabloda kayıt bulup güncelleme yapıyorum. Sorun şu Eğer bu kriterlerden birine uygun bir kayıt yoka güncellemeyi pas geçip tabloda yeni bir kayda gidip kayıt yapabilirmiyiz. Yadımlarınız için teşekkür ederim. Saygılarımla.
Kodumuz;

Private Sub L7_DblClick(Cancel As Integer)
Dim Kriter As String
If Len(Me.birimkodu) > 0 Then
Kriter = Kriter & "tbl_brmkodu LIKE '%" & Me.birimkodu & "%' AND "
End If
If Len(Me.aktiftarih) > 0 Then
Kriter = Kriter & "tbl_tarih LIKE '%" & Me.aktiftarih & "%' AND "
End If
If Len(Me.islmkodu) > 0 Then
Kriter = Kriter & "tbl_islmkodu LIKE '%" & Me.islmkodu & "%' AND "
End If
If Len(Me.islmaltadı) > 0 Then
Kriter = Kriter & "tbl_islmaltadı LIKE '%" & Me.islmaltadı & "%' AND "
End If
If Len(Kriter) > 0 Then
Kriter = " WHERE " & Left(Kriter, Len(Kriter) - 4)
End If

'Bu kriterlere uygun kayıt varsa güncellemeyi yapıyor
'Eğer bu kriterlere uygun kayıt yoksa yeni kayda gidip bilgi kaydnı yapsın

strSQl = "SELECT * FROM tbl_olaylar " & Kriter & ";"
Set rstkayit = New ADODB.Recordset
rstkayit.Open strSQl, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With rstkayit
.Update
.Fields("tbl_brmkodu") = Forms![frm_trhdizini].Form![birimkodu]
.Fields("tbl_tarih") = Forms![frm_trhdizini].Form![aktiftarih]
.Fields("tbl_islmkodu") = Me.[islmkodu]
.Fields("tbl_kö") = Me.[sayı1]
.Fields("tbl_ke") = Me.[sayı1]
.Update
End With
End Sub
Cevapla
Çözüldü #2
Örnek uygulamanızı ekleyiniz.

Site Kuralları:
3-) Sorulara örnek uygulama eklemek zorunludur. Ekleyeceğiniz dosyaların içinde resim vb. yer kaplayacak şeyleri silin. Gereksiz tüm verileri silip sadece sorunu anlatacak örnek veri giriniz ve asla gerçek şahıs/kurumlara ait veri bırakmayınız. Dosyanızda önce Access ile Veritabanı Sıkıştır ve Onar işlemini uygulayınız. Daha sonra herhangi bir sıkıştırma programı ile (WinRar/WinZip/7Zip vb.) Sıkıştırma Yöntemi En İyi (Best) olacak şekilde sıkıştırınız.
Dosya Düzenle Onar ve WinRar ile Sıkıştırma İşlemi
[Uyarı Puanı: +2]
Cevapla
Çözüldü #3
Öncelikle ilgiliniz ve uyarınız için teşekkür ederim. Örneğimi düzenleyip kısmet olursa yarın akşam ekleyeceğim. Saygılarımla. İyi çalışmalar.
Cevapla
Çözüldü #4
Sql WHERE deyiminde hata linkine eklediğiniz örnek uygulamayı düzenledim.
İnceleyiniz, koddaki eksik ayanları uygulamanıza göre düzenlersiniz.

Dim Kriter As String
If Len(Me.birimkodu) > 0 Then
Kriter = Kriter & "tbl_brmkodu LIKE '%" & Me.birimkodu & "%' AND "
End If
If Len(Me.tarih) > 0 Then
Kriter = Kriter & "tbl_tarih LIKE '%" & Me.tarih & "%' AND "
End If
If Len(Kriter) > 0 Then
Kriter = " WHERE " & Left(Kriter, Len(Kriter) - 4)
End If
strSQl = "SELECT * FROM tbl_ameliyatalt " & Kriter & ";"
Set rstkayit = New ADODB.Recordset
rstkayit.Open strSQl, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With rstkayit
If Not rstkayit.EOF Then
Me.ydshpl = .Fields("tbl_ydokukö")
Me.ydshpz = .Fields("tbl_ydokuköa")
Me.sdshpl = .Fields("tbl_sdokukö")
Me.sdshpz = .Fields("tbl_sdokuköa")
Else
.AddNew
If MsgBox("" & Me.birimkodu & " Birim Kodlu ve " & Me.tarih & " tarihli yeni kayıt eklensin mi?", vbInformation + vbYesNo) = vbYes Then
.Fields("tbl_brmkodu") = Me.birimkodu
.Fields("tbl_tarih") = Me.tarih
.Update
End If
End If
End With
Recalc
.rar KriterYeniKayitSLD.rar (Dosya Boyutu: 21,7 KB | İndirme Sayısı: 26)
Cevapla
Çözüldü #5
Sayın ozanakkaya ilgi ve alakanızdan dolayı teşekkür eder saygılarımı sunarım. Örneği uygulayacağım. Sorun devam ederse örnek uygulama ile bilgilerinize tekrar baş vururum.

Teşekkürler.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task