Cvp: Tarih Girişi - ozanakkaya - 04/09/2015
AY adını niye sildiğinizi anlamadım, aykod'u silerseniz de hata verecek?
Aşağıdaki kodu kullanırsanız ayları aykoda göre hesaplayıp tabloya veri aktarır.
On Error Resume Next
Dim GTarih, GIlkTarih, GSonTarih As Date
Dim GAyAdi As Integer
Dim GAyNo As String
Dim GHaftaTarih, GHaftaGunu As Integer
Dim GYil As Integer
Dim Kayit As DAO.Recordset
Dim GAylarBirlesik As String
Set Kayit = CurrentDb.OpenRecordset("TabloYillik", dbOpenDynaset)
Do While Not Kayit.EOF
If Kayit![PlanID] = DCount("PlanID", "TabloYillik") Then
Exit Do
End If
Kayit.Edit
GAyAdi = Val(Kayit![aykod])
Select Case GAyAdi
Case 1 To 4
GAyNo = GAyAdi + 8
GYil = Year(Date)
Case 5 To 10
GAyNo = GAyAdi - 4
GYil = DateAdd("y", 1, Year(Date))
End Select
GTarih = "01" & "." & GAyNo & "." & GYil
GHaftaTarih = DateAdd("ww", (Left(Kayit![HAFTA], 1) - 1), GTarih)
GHaftaGunu = Weekday(GHaftaTarih, vbMonday)
GIlkTarih = GHaftaTarih - Weekday(GHaftaTarih) + 9
GSonTarih = GHaftaTarih - Weekday(GHaftaTarih) + 13
If Format(GIlkTarih, "mm") = Format(GSonTarih, "mm") Then
GAylarBirlesik = Format(GIlkTarih, "dd") & " "
Else
GAylarBirlesik = Format(GIlkTarih, "dd") & " " & Format(GIlkTarih, "mmmm")
End If
Kayit![Tarih] = GAylarBirlesik & "-" & Format(GSonTarih, "dd") & " " & Format(GSonTarih, "mmmm")
Kayit![ilkTarih] = GIlkTarih
Kayit![SonTarih] = GSonTarih
Kayit.Update
Kayit.MoveNext
Loop
Liste20.Requery
Kayit.Close
aykodu göre değiştirirseniz yine çalışmaz.
Cvp: Tarih Girişi - idrisy - 04/09/2015
Hocam; aşağıdaki kodu inceler misiniz. Bu şekilde bir çözüm bulmaya çalıştım.
Kod:
Dim X, Y, Z, Guncel, Yeni As Integer
Dim AyTarih, sqlTarih, strTarih As String
Z = DCount("PlanID", "TabloYillik")
For X = 0 To Z
Yeni = (Fix((X - 1) / 4)) * 7
sqlTarih = Metin161 + Yeni
AyTarih = sqlTarih + 2
Y = DCount("AY", "TabloYillik", "AY= '" & Format(AyTarih, "mmmm") & "' and [PlanID]<" & X & "")
Guncel = (Fix(Y / 4)) + 1
strSQl = "SELECT * FROM TabloYillik "
Set rstkayit = New ADODB.Recordset
rstkayit.Open strSQl, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With rstkayit
.Find "[PlanID]=" & "'" & X & "'"
If Not rstkayit.EOF Then
strTarih = IIf(Format(sqlTarih - Weekday(sqlTarih) + 2, "mmmm") = Format(sqlTarih - Weekday(sqlTarih) + 6, "mmmm"), (Format(sqlTarih - Weekday(sqlTarih) + 2, "dd") & "-" & Format(sqlTarih - Weekday(sqlTarih) + 6, "dd") & " " & Format(sqlTarih - Weekday(sqlTarih) + 2, "mmmm")), (Format(sqlTarih - Weekday(sqlTarih) + 2, "dd") & " " & Format(sqlTarih - Weekday(sqlTarih) + 2, "mmmm") & "-" & Format(sqlTarih - Weekday(sqlTarih) + 6, "dd") & " " & Format(sqlTarih - Weekday(sqlTarih) + 6, "mmmm")))
.Fields("tarih") = strTarih
.Fields("AY") = Format(AyTarih, "mmmm")
.Fields("aykod") = DLookup("Deger3", "TabloDeger", "Deger1= '" & Format(AyTarih, "mmmm") & "'")
If Y <= 4 Then
.Fields("HAFTA") = "1.Hafta"
ElseIf Y > 4 And Y <= 8 Then
.Fields("HAFTA") = "2.Hafta"
ElseIf Y > 8 And Y <= 12 Then
.Fields("HAFTA") = "3.Hafta"
ElseIf Y > 12 And Y <= 16 Then
.Fields("HAFTA") = "4.Hafta"
ElseIf Y > 16 And Y <= 20 Then
.Fields("HAFTA") = "5.Hafta"
End If
Liste20.Requery
.Update
End If
End With
Yeni = Yeni + 7
Next X
Cvp: Tarih Girişi - idrisy - 04/09/2015
ozanakkaya hocam; yardımlarınız için çok teşekkür ederim. Ellerinize sağlık. Sayenizde sorunum çözüldü.
Çalışmanın son halini ekledim. Öneriniz olursa onu da dikkate alırım.
Cvp: Tarih Girişi - ozanakkaya - 05/09/2015
Benim yardımımla çözülmüş olamaz, eklediğiniz son örnekteki kod bana ait değil, farklı bir kod kullanmışsınız.
Private Sub Komut160_Click()
On Error Resume Next
Dim GTarih, GIlkTarih, GSonTarih As Date
Dim GAyNo As String
Dim GHaftaTarih, GHaftaGunu, GAyAdi As Integer
Dim GYil As Integer
Dim Kayit As DAO.Recordset
Dim GAylarBirlesik As String
Set Kayit = CurrentDb.OpenRecordset("TabloYillik", dbOpenDynaset)
Do While Not Kayit.EOF
If Kayit![PlanID] = DCount("PlanID", "TabloYillik") Then
Exit Do
End If
Kayit.Edit
GAyAdi = Val(Kayit![aykod])
Select Case GAyAdi
Case 1 To 4
GAyNo = GAyAdi + 8
GYil = Year(Date)
Case 5 To 10
GAyNo = GAyAdi - 4
GYil = DateAdd("y", 1, Year(Date))
End Select
GTarih = "01" & "." & GAyNo & "." & GYil
GHaftaTarih = DateAdd("ww", (Left(Kayit![HAFTA], 1) - 1), GTarih)
GHaftaGunu = Weekday(GHaftaTarih, vbMonday)
GIlkTarih = GHaftaTarih - Weekday(GHaftaTarih) + 9
GSonTarih = GHaftaTarih - Weekday(GHaftaTarih) + 13
If Format(GIlkTarih, "mm") = Format(GSonTarih, "mm") Then
GAylarBirlesik = Format(GIlkTarih, "dd") & " "
Else
GAylarBirlesik = Format(GIlkTarih, "dd") & " " & Format(GIlkTarih, "mmmm")
End If
Kayit![Tarih] = GAylarBirlesik & "-" & Format(GSonTarih, "dd") & " " & Format(GSonTarih, "mmmm")
Kayit![ilkTarih] = GIlkTarih
Kayit![SonTarih] = GSonTarih
Kayit![AY] = MonthName(GAyNo)
Kayit.Update
Kayit.MoveNext
Loop
Liste20.Requery
Kayit.Close
End Sub
Cvp: Tarih Girişi - idrisy - 06/09/2015
hocam; evet sizin yazdığınız kod değil ama sayenizde farklı şeyler yapabileceğimi fark ettim. Ama hala sıkıntım var. Birincil anahtarla ilgili. Şuan planId 1 den başlıyor ve sıralı olarak gidiyor. Sonra satır sildim veya başka bir şey oldu PlanID 150 den başlarsa sorun çıkacağını düşünüyorum. Böyle bir sorun çıkmaması için kodu nasıl düzenlemeliyim?
Cvp: Tarih Girişi - ozanakkaya - 06/09/2015
Sayın idrisy, önce tarih dediniz, tarih ile ilgili kodu yazdım. Sonra ay silindiğinde hata veriyor dediniz ay ile ilgili kodu yazdım. Şimdide farklı bir olaydan bahsediyorsunuz.
Konu başlığındaki sorunuz çözümlendi ise konuyu taşıyalım.
Siz yeni sorunuz için yeni konu açınız.
|