13/01/2019, 22:02
13/01/2019, 22:06
(13/01/2019, 21:37)haliliyas yazdı: [ -> ]dao.recordset ile sizin belirttiğiniz adodb.recordset arasındaki fark nedir
dao daha eski bir kod yapısı, dao da uzak servere bağlanmada sorunlar ve hatalar çıkarken ado da direkt sorunsuz işlem yapar.
Kod:
Dim rs As DAO.Recordset
Dim db As Database
Set db = CurrentDb()
Set rs = db.OpenRecordset(tabloadi)
Kod:
dim rs as new adodb.recordset
rs.open "Tabloadi", currentproject.connection, adopenkeyset, adlockoptimistic
ado le bu şekidle bağlantı kullanırsınız. bana kolay geliyor daha işlevsel. o yüzden ado tercih ediyorum.
13/01/2019, 22:09
dim rs as new adodb.recordset 'rs adında bağlantı oluşturacağımızı belirtiyoruz
rs.open "Tabloadi", currentproject.connection, adopenkeyset, adlockoptimistic ' bağlantıyı kuruyoruz
if rs.eof=true then goto 1453 'tablo içine bakıyoruz. tablo içi boş ise 1453 numara ile bizi isteiğimiz yere göürüyor.
'Tablo içi boş değil ise alttaki kodları çalıştırıyor.
DoCmd.SetWarnings False
DoCmd.OpenQuery "SQLTablo1Ekle"
DoCmd.SetWarnings True
Me.Liste5.Requery
Me.Recordset.MoveFirst
else
Me.Recordset.MoveFirst
rs.FindFirst "[odmtrh] Like '" & Me.Metin51 & "'"
If Not rs.NoMatch Then
Me.Bookmark = rs.Bookmark
MsgBox ("kayıt var")
Else
DoCmd.SetWarnings False
DoCmd.OpenQuery "SQLTablo1Ekle"
DoCmd.SetWarnings True
Me.Liste5.Requery
1453
rs.open "Tabloadi", currentproject.connection, adopenkeyset, adlockoptimistic ' bağlantıyı kuruyoruz
if rs.eof=true then goto 1453 'tablo içine bakıyoruz. tablo içi boş ise 1453 numara ile bizi isteiğimiz yere göürüyor.
'Tablo içi boş değil ise alttaki kodları çalıştırıyor.
DoCmd.SetWarnings False
DoCmd.OpenQuery "SQLTablo1Ekle"
DoCmd.SetWarnings True
Me.Liste5.Requery
Me.Recordset.MoveFirst
else
Me.Recordset.MoveFirst
rs.FindFirst "[odmtrh] Like '" & Me.Metin51 & "'"
If Not rs.NoMatch Then
Me.Bookmark = rs.Bookmark
MsgBox ("kayıt var")
Else
DoCmd.SetWarnings False
DoCmd.OpenQuery "SQLTablo1Ekle"
DoCmd.SetWarnings True
Me.Liste5.Requery
1453
13/01/2019, 22:11
Sağolun @ozguryasin hocam
13/01/2019, 22:28
kodlarınızda iki else var. bir if fakat hiç end if yok.
iki else olduğu için stei else bir if yazmanız gerekiyor ve sonra onları end if ile kapatmanız gerekiyor.
if else yapısı şart durumlarında kullanılır.
örneğin.
if Ozgur = 1 then
özgür 1 ise buradaki kodlar çalışır.
else
özgür 1 den farklı ise buradaki kodlar çalışır.
end if
if ile yazılan ifadelerde ille else olma zorunluluğu yoktur.
if özgür =1 then
bu şekilde olduğunda özgür bir ise buradaki kodlar çalışır. değil ise if durumundan çıkılır.
end if
birde elseif durumları olur.
If konum="k" Then
konumum = "kuzey"
ElseIf konum = "g" Then
konumum = "güney"
ElseIf konum = "d" Then
konunum = "doğu"
ElseIf konunm = "b" Then
konumum = "batı"
End If
şeklinde kullanılır. her if else durumu taşımasa dai end if ile sonlandırılmalıdır.
bazı durumlarda if else yerine select case kullanılabilir. yapı bakımından birbirine benzerler. olasılıklar üzerine kullanılırlar.
iki else olduğu için stei else bir if yazmanız gerekiyor ve sonra onları end if ile kapatmanız gerekiyor.
if else yapısı şart durumlarında kullanılır.
örneğin.
if Ozgur = 1 then
özgür 1 ise buradaki kodlar çalışır.
else
özgür 1 den farklı ise buradaki kodlar çalışır.
end if
if ile yazılan ifadelerde ille else olma zorunluluğu yoktur.
if özgür =1 then
bu şekilde olduğunda özgür bir ise buradaki kodlar çalışır. değil ise if durumundan çıkılır.
end if
birde elseif durumları olur.
If konum="k" Then
konumum = "kuzey"
ElseIf konum = "g" Then
konumum = "güney"
ElseIf konum = "d" Then
konunum = "doğu"
ElseIf konunm = "b" Then
konumum = "batı"
End If
şeklinde kullanılır. her if else durumu taşımasa dai end if ile sonlandırılmalıdır.
bazı durumlarda if else yerine select case kullanılabilir. yapı bakımından birbirine benzerler. olasılıklar üzerine kullanılırlar.
13/01/2019, 23:28
sayın @zaferlacin neden metin kutularında sabit bir tarih kullandığınızı öğrenebilir miyim?