Form verilerinin yenilenmesi

1 2
05/02/2009, 11:44

mzebek

Gününüz aydın olsun sevgili arkadaşlar;

bir konuda yardıma ihtiyacım var.
kısaca özetlersek;
tek bir veri tabanında ayrı birimlere ait kayıtlar 1 den başlamak üzere tutuluyor ve ağ altında aynı birim çalışanları kayıt yapabiliyor.yapılan kayıtların anında güncellenmesi için ;

Form_mudgidenevrak.Form.Refresh 'yineleme

Form_mudgidenevrak.Form.Requery 'yenileme

Form.Recalc 'yenileme

komutlarıyla yapılabiliyor.
Ancak problem bundan sonra başliyor .Form verileri yenilendiğinde form verileri tablodaki ilk kayda gidiyor.istenilen yineleme yapıldığında kayıt işlemini yapılan kayıtta kalması.

tablo yapısıda kısaca şöyle.
mudno ID sırano adı
10 1 1 ali
10 2 2 veli
15 3 1 selim
15 4 2 bahar
15 5 3 gel

form açıldığında seçilen müdürlüğü ait kayıtları getiriyor.

ac Last komutu diyeceksiniz belki doğru ancak her hangi bir kayıtta güncellme yapıldığında yine son kayda gidiyor bu da kullanıcı için sıkıntı yaratıyor.
ilginize şimdiden teşekkür ederim.
özbek murat
05/02/2009, 12:04

tdsharun

Yenile butonunun tıklandığında olayına şu kodu ekleyip dener misiniz:

Kod:
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70

Yukarıdaki kod istediğini yapmazsa bir de şunu deneyin:

Alıntı:Dim IdNo As Long
IdNo = Me.ContactID 'Otomatik Sayı değeri alan alanınızın adı
Me.Requery
Form.Requery
DoCmd.FindRecord IdNo, acEntire, , acSearchAll, , acCurrent

Kolay gelsin...
05/02/2009, 13:51

mehmetdemiral

Bir değişken atayın

bir modül oluşturun, içine bir global değişken atayın
Kod:
global aktifsira as string

güncelleme butonunun en üstüne yazacağınız şu komutla aktif sıra noyu form üzerinden alarak bu değişkene atayın. Form üzerinde ID alanı vardır, yoksa da ekleyin. Gizli olabilir. O an bulunduğunuz kayıt form üzerinde yazıyor olmalı.

Kod:
aktifsira= me.mudgidenevrak.ID

sonra da güncelleme kodlarınız

Kod:
Form_mudgidenevrak.Form.Refresh
Form_mudgidenevrak.Form.Requery
Form.Recalc

ve ardında da

Kod:
DoCmd.GoToRecord acForm, "mudgidenevrak", acGoTo, aktifsira

bu şekide sanırım olması lazım. Deneyin olmazsa düzeltelim.

Kolay gelsin.
Bu arada eğer sıra numarasını yanlış yerden aldıysak, ID alanı yanlış seçimse hatalı kayda gidecektir. O zaman bir benzersiz ID varsa onu kullanın. Ben sadece mantığını anlattım, siz kullanacağınız alanları doğru seçin yeter...
Harun pardon, senin mesajını görmemişim. Sen zaten aynı şeyi anlatmışsın.. Kusura bakma ..
05/02/2009, 14:10

tdsharun

Estağfurullah hocam, ne kusuru, olur mu...

Bir sorunu çözmenin en az iki yolu vardır hocam... Biz alternatifleri verelim...

Ayrıca kod farklılığı olsun. Kimin hangisi işine yararsa kullansın hocam...

Paylaşım için teşekkürler...

Kolay gelsin...
05/02/2009, 15:10

mzebek

Sn tdsharun ve Sn.Mehmet Demiral ilginize şimdiden teşekkür ediyorum.kodları deneyerek tekrar size cevap yazarım.
Kolay gelsin.
özbek murat
05/02/2009, 17:32

mzebek

Private Sub Komut81_Click()
aktifsira = Me.ID

If IsNull([konusu]) Or Form_gidenpostamud.evnergittigi.Value = "Giriniz!" Or Form_gidenpostamud.adresi.Value = "Giriniz!" Or Form_gidenpostamud.aehir.Value = "Giriniz!" Or IsNull(Form_gidenpostamud.aehir.Value) Or IsNull(Form_gidenpostamud.evnergittigi.Value) Or IsNull(Form_gidenpostamud.adresi.Value) Then
MsgBox (" Lütfen Kaydınızı Kontrol Edin.!" & vbCrLf & " Boş Bırakılan Alanlar Var1."), vbExclamation, "Dikkat!"
Cancel = True
Form_gidenpostamud.evnergittigi.SetFocus
Else

Form_mudgidenevrak.Form.Refresh
Form_mudgidenevrak.Form.Recalc

DoCmd.GoToRecord acDataForm, "mudgidenevrak", acGoTo, aktifsira
End If
kod bu ancak son satırda
'mudgidenevrak' nesnesi açık değil hatası veriyor
1 2