Öncelikle şu konuyu okumalı ve gerekli düzeltmeleri yapmalısınız.
Yapılmaması gereken ölümcül hatalar
Yukarıdaki konuda anlatıldığı gibi, özellikle Tablo ve alan adlarında türkçe karakter ve boşluk kullanmamalısınız.
Soruna gelince, yanlış anlamıyorsam bir öğrencinin adresi değiştiğinde,
daha önceki adresleri neydi şeklinde bir kayıt yapmak istiyorsunuz.
Sonuçta bu iş tek tek öğrenci bazında yapılacağına göre update query ile
tüm öğrencilerin adreslerini güncellemenin bir manası yok.
Formda, hangi öğrencinin adresi değişiyorsa yani ADRESİ alanına yeni bir adres girilip kaydedildiğinde,
önceki adresi "ESKİ ADRESLER" tablosuna kaydetmesini sağladım.
Kod:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim StrSQL
If Me.ADRESİ.Value <> Me.ADRESİ.OldValue Then
StrSQL = "Insert Into [ESKİ ADRESLERİ] (TC, [ESKİ ADRESLERİ]) "
StrSQL = StrSQL & " Values (" & Me.TC_KİMLİK_NO & ",'" & Me.ADRESİ.OldValue & "')"
CurrentDb.Execute StrSQL
Me.[ESKİ ADRESLERİ].Requery
End If
End Sub
Ayrıca [ESKİ ADRESLERİ] tablosunda adı ve soyadı alanına gerek yok, sildim.
Bu tabloya anahtar alan gerekli, ESKI_ID adında otomatik numaralı bir alan ekledim.
Böylece bu alanı kullanarak eski adresleri sıralama imkanı da oldu.
Her öğrencinin farklı bir TC nosu olacağına göre ARSİV tablosunda,
KAYITNO alanını silip, TC alanını anahtar olarak kullanabilirsiniz.
Yurt_Seruz2.rar
(Dosya Boyutu: 50,42 KB | İndirme Sayısı: 9)
Bildiğini bilenin arkasından git, bildiğini bilmeyeni uyar, bilmediğini bilene öğret, bilmediğini bilmeyenden kaç.
Konfüçyüs