Skip to main content

AccessTr.neT


formda dlookup komutu ile veri gelmiyor

saglikci_salih
saglikci_salih
4
2586

formda dlookup komutu ile veri gelmiyor

Çözüldü #1
İyi günler accesstr.netciler gebelerde d vitamini dağıtımı ile ilgili bir form yaptım. Bu formda dönem bölümü secilince kayıt yoksa yeni kayıt oluşturup gecen dönemden devredenleri getiriyor. Formda yapamadığım tek şey ise eğer dönem alanı daha önce girildi ise girilen kayıtları getirmesi için aşağıdaki kodları yazdım dönem © in güncelleştirme sonrasındaki olayı

Visual Basic Code
If IsNull(Me![a]) Or Me.a = "" Then
If Me.d = 1 Then
Dim z As Integer
    z = DCount("*", "tbl_dvit1", _
               "donem= '" & Me.c _
               & "' and ahidifk= '" & Me.d & "' ")
If z > 0 Then
If MsgBox("Aynı Kayıttan Var Kaydı Getireyim mi?", vbQuestion + vbYesNo, "Gümüşhacıköy TSM") = vbYes Then
a = DLookup("[id]", "[tbl_dvit1]", "[donem]=" & Me.c)
b = DLookup("[tarih]", "[tbl_dvit1]", "[donem]=" & Me.c)
e = DLookup("[dvitgebe]", "[tbl_dvit1]", "[donem]=" & Me.c)
f = DLookup("[dvitanne]", "[tbl_dvit1]", "[donem]=" & Me.c)
g = DLookup("[dvitrecete]", "[tbl_dvit1]", "[donem]=" & Me.c)
h = DLookup("[dvitdevreden]", "[tbl_dvit1]", "[donem]=" & Me.c)
i = DLookup("[dvitgelen]", "[tbl_dvit1]", "[donem]=" & Me.c)
j = DLookup("[dvitdagitilan]", "[tbl_dvit1]", "[donem]=" & Me.c)
k = DLookup("[dvitkalan]", "[tbl_dvit1]", "[donem]=" & Me.c)
l = DLookup("[toplam]", "[tbl_dvit1]", "[donem]=" & Me.c)
Else
DoCmd.SetWarnings (False)
kisitemizlea
DoCmd.SetWarnings (True)
End If
Else
Call denetimler_aktif
btn_kaydet.Enabled = False
btn_duzelt.Enabled = False
If IsNull(Me![a]) Or Me.a = "" Or Me.a = 0 Then
t = Nz(DLast("[dvitkalan]", "tbl_dvit1"), 0)
Me.a = Nz(DMax("id", "tbl_dvit1"), 0) + 1
Me.b = Date
Me.h = t
End If
Me.b = Date
If Me.h > 0 Then
Me.h.Enabled = False
End If
End If
End If


a = Dlookup ("[id]", "[tbl_dvit1]", "[donem]=" & Me.c)
b = Dlookup ("[tarih]", "[tbl_dvit1]", "[donem]=" & Me.c)
e = Dlookup ("[dvitgebe]", "[tbl_dvit1]", "[donem]=" & Me.c)
f = Dlookup ("[dvitanne]", "[tbl_dvit1]", "[donem]=" & Me.c)
g = Dlookup ("[dvitrecete]", "[tbl_dvit1]", "[donem]=" & Me.c)
h = Dlookup ("[dvitdevreden]", "[tbl_dvit1]", "[donem]=" & Me.c)
i = Dlookup ("[dvitgelen]", "[tbl_dvit1]", "[donem]=" & Me.c)
j = Dlookup ("[dvitdagitilan]", "[tbl_dvit1]", "[donem]=" & Me.c)
k = Dlookup ("[dvitkalan]", "[tbl_dvit1]", "[donem]=" & Me.c)
l = Dlookup ("[toplam]", "[tbl_dvit1]", "[donem]=" & Me.c)
bu yerde hata mesajı alıyorum. nasıl yaparsam düzelir ben döneme göre getirmesini istiyorum.yardımcı olursanız sevinirim.

.rar gebe dvit programı.rar (Dosya Boyutu: 59,47 KB | İndirme Sayısı: 19)
saglikci_salih, 28-07-2009 tarihinden beri AccessTr.neT üyesidir.
Son Düzenleme: 28/03/2013, 21:29, Düzenleyen: saglikci_salih.
Cevapla
Çözüldü #2
selam
dlookup yerine ado deneseniz daha hızlı olur

koddaki
tabloadı,tablokriter,kritermetinkutusuadi,metinkutusuadi,tabloalanadi
alanlarını kendi uygulamanıza uyarlayın

Visual Basic Code
dim tablokontrol as integer
tablokontrol = dcount("sayımalanı","tabloadı","tablokriter=" & kritermetinkutusu)
If tablokontrol  > 0 Then
If MsgBox("Aynı Kayıttan Var Kaydı Getireyim mi?", vbQuestion + vbYesNo, "Gümüşhacıköy TSM") = vbYes Then

    Dim rs As ADODB.Recordset
    Dim strSQL As String
strSQL = "SELECT * FROM tabloaadi WHERE tablokriter= " & kritermetinkutusuadi
Set rs = CreateObject("ADODB.Recordset")
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
rs.Open strSQL, CurrentProject.Connection
If rs.State = 1 Then
If Not rs.BOF Then
    metinkutusuadi= rs("tabloalanadi")
    metinkutusuadi= rs("tabloalanadi")
End If
rs.Close
End If
Else
End If

aydın3838, 20-12-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
Çözüldü #3

Visual Basic Code
If Me.d = 1 Then
Dim z As Integer
    z = DCount("*", "tbl_dvit1", _
               "donem= '" & Me.c _
               & "' and ahidifk= '" & Me.d & "' ")
If z > 0 Then
If MsgBox("Aynı Kayıttan Var Kaydı Getireyim mi?", vbQuestion + vbYesNo, "Gümüşhacıköy TSM") = vbYes Then
Dim[b] rs As ADODB.Recordset[/b]
    Dim strSQL As String
strSQL = "SELECT * FROM tbl_dvit1 WHERE donem= " & c
Set rs = CreateObject("ADODB.Recordset")
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
rs.Open strSQL, CurrentProject.Connection
If rs.State = 1 Then
If Not rs.BOF Then
    id = rs("tbl_dvit1")
    tarih = rs("tbl_dvit1")
End If
rs.Close
End If


hata verdi hocam rs As ADODB.Recordset burada hata verdi bir de benim kayıt kontrolde iki değere göre kontrol ediyor. Bu nu değiştiremem. ado ile hiç uğraşmadığım için tam olarak yapamadı. hala hata alıyorum. Programda yapmak istediğim şey aile hekimi kodu secildi dönem secildi o aile hekiminin tablosuna gidip tabloyu kontrol etmesi, aile hekimim kodu ve dönemi aynı kayıt varsa,mükerrer kayıt yapmadan kayıtlı veriyi getirsin, yoksa yeni kayıta gecsin. yeni kayıt tamam lakin eski kayıtı getiremiyor.

saglikci_salih, 28-07-2009 tarihinden beri AccessTr.neT üyesidir.
Son Düzenleme: 28/03/2013, 22:45, Düzenleyen: saglikci_salih.
Cevapla
Çözüldü #4
Kodunuzun sadece bir satırını alıp örnek vereyim:

Visual Basic Code
a = DLookup("[id]", "[tbl_dvit1]", "[donem]=" & Me.c)


parantez içindeki 3. bölümde Me.c ile karşınıza gelen değer "Ocak 2013" vb. metin yani String türünde bir değişkendir. Bu tip değişkenleri mutlaka tek tırnaklar içinde kullanmalısınız:

Visual Basic Code
a = DLookup("[id]", "[tbl_dvit1]", "[donem]='" & Me.c & "'")

AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
Çözüldü #5
+rep+rep+rep abi 10 numarasın sen ya. mükemmelsin teşekkür ederim. her ikinizede çok çok teşekkür ederim.
saglikci_salih, 28-07-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task