Listede Yokken

07/05/2022, 22:50

alikagan

kolay gelsin arkadaşlar,
eklemiş olduğum formda olay yordamında "listede yokken" seçtim,
ME.GON_SEB metin kutusuna veri girdiğimde eğer listede yoksa girdiğim veriyi tabloya eklemesini istiyorum,
yardımcı olabilirmisiniz?


07/05/2022, 23:43

atoykan

Merhaba Sayın @alikagan

Ekli örneğinizde herhangi bir veri yok. Tablonuzda tek bir alan mevcut, formunuzda açıklama alanı ne olacak herhangi bir kayıt oluşturulmayacak mı?
Tablonuzdaki TUK_SEBEBI alanına kayıt edilecek veriler sorunuza göre unique (tekrarsız) olmalı ancak tasarımınız buna uygun değil. Mükerrer kayıt kontrol ile ilgili sitede çokça örnek var onları inceleyerek çözüm bulabilirsiniz. Listede yokken olayı yerine GON_SEB güncelleştirme sonrasına örneğin
Private Sub GON_SEB_AfterUpdate()

Dim GONSEB, GONKR As String

GONSEB = Me.GON_SEB.Value
GONKR = "TUK_SEBEBI = '" & Forms!IPLIK_TUKETIM!GON_SEB & "'"

If Dlookup ("TUK_SEBEBI", "IPLIK_TUKETIM_SEBEPLERI", GONKR) > 0 Then
Exit Sub
Else
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT into IPLIK_TUKETIM_SEBEPLERI (TUK_SEBEBI) values ('" & Me.GON_SEB & "') "
DoCmd.SetWarnings True
MsgBox "bilgiler kaydedildi"
End If
End Sub

koduna benzer şekilde kodlarınızı düzenlerseniz girdiğiniz veri mevcut ise işlem yapmaz yok ise tabloya kaydeder.

Yapılmaması Gereken Ölümcül Hatalar başlıklı konuyu dikkatle inceleyin. Tasarımınızı bu yönde gözden geçirin. Kontrollerde ve nesnelerde tamamı büyük harf şeklinde adlandırmalar ve Türkçe karakterler olmamalıdır.
08/05/2022, 09:32

berduş

@atoykan hocamın önerisine alternatif olarak; sizin yazdığınız NotInList kodunun çalışabilmesi için, ilgili açılır kutunun
veri sekmesinde yer alan listeyle sınırla özelliğinin evet olması gerekir
08/05/2022, 12:58

alikagan

(08/05/2022, 09:32)berduş yazdı: @atoykan hocamın önerisine alternatif olarak; sizin yazdığınız NotInList kodunun çalışabilmesi için, ilgili açılır kutunun
veri sekmesinde yer alan listeyle sınırla özelliğinin evet olması gerekir

yardımınız için çok teşekkür ederim,

(07/05/2022, 23:43)atoykan yazdı: Merhaba Sayın @alikagan

Ekli örneğinizde herhangi bir veri yok. Tablonuzda tek bir alan mevcut, formunuzda açıklama alanı ne olacak herhangi bir kayıt oluşturulmayacak mı?
Tablonuzdaki TUK_SEBEBI alanına kayıt edilecek veriler sorunuza göre unique (tekrarsız) olmalı ancak tasarımınız buna uygun değil. Mükerrer kayıt kontrol ile ilgili sitede çokça örnek var onları inceleyerek çözüm bulabilirsiniz. Listede yokken olayı yerine GON_SEB güncelleştirme sonrasına örneğin
Private Sub GON_SEB_AfterUpdate()

Dim GONSEB, GONKR As String
 
  GONSEB = Me.GON_SEB.Value
  GONKR = "TUK_SEBEBI = '" & Forms!IPLIK_TUKETIM!GON_SEB & "'"
 
    If Dlookup ("TUK_SEBEBI", "IPLIK_TUKETIM_SEBEPLERI", GONKR) > 0 Then
    Exit Sub
    Else
    DoCmd.SetWarnings False
    DoCmd.RunSQL "INSERT into IPLIK_TUKETIM_SEBEPLERI (TUK_SEBEBI) values ('" & Me.GON_SEB & "') "
    DoCmd.SetWarnings True
    MsgBox "bilgiler kaydedildi"
  End If
End Sub

koduna benzer şekilde kodlarınızı düzenlerseniz girdiğiniz veri mevcut ise işlem yapmaz yok ise tabloya kaydeder.

Yapılmaması Gereken Ölümcül Hatalar başlıklı konuyu dikkatle inceleyin. Tasarımınızı bu yönde gözden geçirin. Kontrollerde ve nesnelerde tamamı büyük harf şeklinde adlandırmalar ve Türkçe karakterler olmamalıdır.

ilgilendiğiniz için ve yardımcı olduğunuz için çok teşekkür ederim,