veri aralığındaki değerin güncelleşmesi

Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
cevap

daha öncede yazdım ama bu kod her doğıum tarihi girdiğinde yada doğum tarihi alanına her girip çıktığnda eğer formun açılışınada eklersen formun her açılışında tablodaki her kaydı kontrol ediyor ve yaşları yaş aralığını tekrar yazıyor yani bu yazma işini her seferinde tekrarlıyor

dene tablodan ilk kayıtlardaki birinin doğum tarihini değiştir sonra da forma gir ve ordada bir kişi ekle ve doğum tarihini gir ama mutlaka gir çünkü kod doğum tarihi değiştiğinde yada o alandan çıkıldığında çalışır sonra formunu kapat ve tabloyu aç göreceksin tablodan doğum tarihini değiştrdiğin kişinin yaşı ve aralığıda değişmiş olacak
 
Son düzenleme:
Katılım
7 Şubat 2007
Mesajlar
218
Excel Vers. ve Dili
excel 2007
formun açılışına nasıl ekleyeceğim?
 
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
cevap

bu kodu aynen formunda kod kısmında boşluğa yapıştır

Private Sub Form_Open(Cancel As Integer)
Dim i As Integer
Dim rs As New ADODB.Recordset
rs.Open "ETF", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

If rs.EOF <> True Then
Do
rs("YA&#350;") = Age(rs("DO&#286;UM TAR&#304;H&#304;"))
rs.Update
Select Case rs("YA&#350;")
Case 1 To 4
rs("YA&#350;ARALI&#286;I") = "1-4"
rs.Update
Case 5 To 10
rs("YA&#350;ARALI&#286;I") = "5-10"
rs.Update
Case 11 To 24
rs("YA&#350;ARALI&#286;I") = "11-24"
rs.Update
Case 25 To 45
rs("YA&#350;ARALI&#286;I") = "25-45"
rs.Update
Case 45 To 65
rs("YA&#350;ARALI&#286;I") = "45-65"
rs.Update
Case 65 To 85
rs("YA&#350;ARALI&#286;I") = "65-85" 'B&#252;y&#252;k &#304;htimalle &#214;L&#220;
rs.Update
End Select

rs.MoveNext
Loop Until rs.EOF
End If
Set rs = Nothing
Set conn = Nothing
DoCmd.RunCommand acCmdRefresh
End Sub
 
Son düzenleme:
Katılım
7 Şubat 2007
Mesajlar
218
Excel Vers. ve Dili
excel 2007
yani formun a&#231;&#305;l&#305;&#351;na ya&#351; aral&#305;klar&#305;n yazd&#305;&#287;&#305; kodumu ekleyece&#287;im?
 
Katılım
7 Şubat 2007
Mesajlar
218
Excel Vers. ve Dili
excel 2007
t&#351;k ederim g&#252;ls&#252;m han&#305;m o problemi hallettim. sizden bir&#351;ey daha rica etmek istiyorum. &#351;imdi formdqada g&#246;rd&#252;&#287;&#252;n&#252;z gibi muhtarl&#305;k sokak kap&#305; daire no &#305;s&#305;nma su ve hela tipleri var bu bilgiler bir aile i&#231;in sabit bilgilerdir. bir ailedeki bilgileri kaydederken sabit bilgiler kal&#305;p sadece ki&#351;i bilgilerini giremezmiyiz. yeni bi aileye ge&#231;ince o bilgileri yenileyelim?
 
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
cevap

sana en başında nn anlatayım

bu kod modülde olur ve amacı bizim doğum tarihlerimize göre yaş hesaplar
bu kodu çalıştırmak için ise şöyle bir şey lazımdır diyelim senin direkt olarak formda metin kutusuna bu kod ile yaşını yazdırmak istiyrsouni
ozaman şöyle bir şey yapardın yaş.value=Age(doğumtarihi.value)

bunu benim ilk yapıtğım gibi sorguda kullanmak için ise güncelleştir kısmına Age([Doğum Tarihi]) yazardın

yada şuanda yaptığımız gibi ado ile kullanırdınki onuda aşağıda anlatacam
Option Compare Database
Option Explicit

Function Age(varBirthDate As Variant) As Integer
Dim varAge As Variant

If IsNull(varBirthDate) Then Age = 0: Exit Function

varAge = DateDiff("yyyy", varBirthDate, Now)
If Date < DateSerial(Year(Now), Month(varBirthDate), _
Day(varBirthDate)) Then
varAge = varAge - 1
End If
Age = CInt(varAge)
End Function




Function AgeMonths(ByVal StartDate As String) As Integer
Dim tAge As Double
tAge = (DateDiff("m", StartDate, Now))
If (DatePart("d", StartDate) > DatePart("d", Now)) Then
tAge = tAge - 1
End If

If tAge < 0 Then
tAge = tAge + 1
End If

AgeMonths = CInt(tAge Mod 12)

End Function


burda anlatacaklarım form kısmında yapılanlar kodların her kısmının ne iş yaptığını anlatacam
bu kısım formun açıldığında çalışacağını gösterir
Private Sub Form_Open(Cancel As Integer)

burda yeni bir recordset açarız
Dim rs As New ADODB.Recordset
burda recordsetin çaığracağı tabloyu belirleriz
rs.Open "ETF", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
burda tabloda kayıt varmı yokmu onu kontrol edriz
If rs.EOF <> True Then
Do
burda kayıt varsa yani tabloda veri varsa tablonun doğum tarihi alanına bakarak yaş alanlarının hepsini modül3teki Age fonsiyonuna göre güncelleriz yani kişilerin doğum tarihlerine göre yaşlarını tabloya yazdırırız
rs("YAŞ") = Age(rs("DOĞUM TARİHİ"))
yazma kısmı burda gerçekleşir
rs.Update
burdada tablonun yaş alanına bakarak 1 To 4 gibi 1 ile 4 arasındakilerin yaşaralığı alanına 1-4 yazdırırız
Select Case rs("YAŞ")
Case 1 To 4
rs("YAŞARALIĞI") = "1-4"
rs.Update
Case 5 To 10
rs("YAŞARALIĞI") = "5-10"
rs.Update
Case 11 To 24
rs("YAŞARALIĞI") = "11-24"
rs.Update
End Select
burda işlemler bitene kadar bütün tablo bir sonraki bir sonraki kayıt şeklinde devam eder
rs.MoveNext
Loop Until rs.EOF
End If
Set rs = Nothing
Set conn = Nothing
burdada formu yenileriz
DoCmd.RunCommand acCmdRefresh
End Sub
 
Katılım
7 Şubat 2007
Mesajlar
218
Excel Vers. ve Dili
excel 2007
gülsüm hanım o problemimmi çözdünüz tşk ederim. form açıldığında sormuyor ama kendisi direk güncelleştiriyor. Peki bu tablodaki bütün bilgiler içinde geçerlimi. Ayrıca sormak istediğim olaylardan biri . Kapı no sokak Daire muhatarlık bilgileri her aile için sabit kalsın bir sonraki ailenin kayıtlarına geçince değiştireyim .
 
Katılım
7 Şubat 2007
Mesajlar
218
Excel Vers. ve Dili
excel 2007
iki ayr&#305; formun ayn&#305; tablodan kayd&#305; nas&#305;l olur
 
Katılım
7 Şubat 2007
Mesajlar
218
Excel Vers. ve Dili
excel 2007
arkada&#351;lar ekteki formu incelermisiniz acaba. form2 deki &#252;stbilgide bulunan bilgiler sabit kals&#305;n . ayr&#305;nt&#305;da bulunan bilgiler kaydedildik&#231;ede &#252;st bilgide buna paralel olarak kayda devam etsin? umar&#305;m anlatabilmi&#351;imdir. ayr&#305;nt&#305; de&#287;i&#351;sede &#252;st bilgideki veriler tabloda kayd&#305;n par&#231;as&#305; olsun
 
Katılım
7 Şubat 2007
Mesajlar
218
Excel Vers. ve Dili
excel 2007
arkada&#351;alr yard&#305;m edecek yokmu?
 
Üst