Merhaba arkadaşlar,
benim yapmak istedigim olay, 2500 adet müşterim var,
müşterinin baş harfine göre sıra nımarası verdirmek,
öncelikler mevcut numaraları degiştirmem gerek
a harfiyle başlayan bir müşteriyi seçip numaralandır butonuna tıkladığımda
Baş harfi A olan müşterilere sırasına göre A1 A2 A3 A4 A5
B harfi ile başlayan bir müşteri seçip aynısını yapmak istiyorum,
ben biraz uğraştım yapamadım malesef, kodlarımı aşağıya ekliyorum,
Dim ne, i As String, a, e As Integer
i = Left([Firmaİsmi], 1)
Me.BasHarf = Left([Firmaİsmi], 1)//seçtiğim müşterinin baş harfini alıyorum
e = DCount("Firmaİsmi", "Firmalar", "Left([Firmaİsmi], 1)='" & i & "'")//seçtiğim harfin kaç adet olduğunu buluyorum
For a = 1 To e
Me.numm = Me.numm + 1
Dim guncelle As String
guncelle = "UPDATE Firmalar SET MusNo= BasHarf & numm +1 WHERE Left([Firmaİsmi], 1)= BasHarf ;"
DoCmd.SetWarnings False
DoCmd.RunSQL guncelle
DoCmd.SetWarnings True
Next a
bu kod hepsine aynı sayıyı atıyor.?
for next ve güncelle
Kodun bulunduğu örnek uygulamayı ekleyiniz.
Pardon ozan hocam, belgeyi ekliyorum.
Merhaba;
Uygulamanızdaki forma test amaçlı bir buton ekleyip Click olay yordamına aşağıdaki kodu yapıştırarak dener misiniz?
Uygulamanızdaki forma test amaçlı bir buton ekleyip Click olay yordamına aşağıdaki kodu yapıştırarak dener misiniz?
Kod:
Dim sql, guncelle As String
Dim adet, i, d As Integer
Dim harfler() As Variant
harfler = Array("A", "B", "C", "Ç", "D", "E", "F", "G", "Ğ", "H", "I", "İ", "J", "K", "L", "M", "N", "O", "Ö", "P", "R", "S", "Ş", "T", "U", "Ü", "V", "Y", "Z", "W", "Q", "X")
'MsgBox harfler(0)
'Exit Sub
For i = 0 To (UBound(harfler))
sql = "SELECT [Firmalar].[SiraNo],Firmalar.Firmaİsmi FROM Firmalar WHERE Firmalar.Firmaİsmi Like '" & harfler(i) & "*'"
Me.Liste13.RowSource = sql
Me.Liste13.Requery
adet = Me.Liste13.ListCount
If adet = 0 Then GoTo 18
For d = 0 To adet
Me.Liste13.Selected(d) = True
guncelle = "UPDATE Firmalar SET MusNo='" & harfler(i) & d + 1 & "' WHERE [Firmalar].[SiraNo]=" & Me.Liste13.Column(0)
Debug.Print guncelle
CurrentDb.Execute guncelle
Next d
18
Next i
MsgBox "bitti"
Me.Liste13.RowSource = "SELECT [Firmalar].[SiraNo], [Firmalar].[Firmaİsmi] FROM Firmalar"
Me.Liste13.Requery
Çok çok teşekkür ederim sayın Direniş, ellerinize sağlık,
Bundan sonraki kayıtların düzenli gitmesi için bir koda daha ihtiyacım olacak,
Yeni müşteri kaydı yaparken, ismi yazıp çıktığımda MusNo ya numarayı otomatik atmasını nasıl yapabiliriz,
örneyin Mehmet bal yazıp çıkınca M harfindeki
en son numarayı bulup 1 artırarak yazması,
örneyin son kayıt M32 ise Mehmet bal a M33 yazması gibi?
Bundan sonraki kayıtların düzenli gitmesi için bir koda daha ihtiyacım olacak,
Yeni müşteri kaydı yaparken, ismi yazıp çıktığımda MusNo ya numarayı otomatik atmasını nasıl yapabiliriz,
örneyin Mehmet bal yazıp çıkınca M harfindeki
en son numarayı bulup 1 artırarak yazması,
örneyin son kayıt M32 ise Mehmet bal a M33 yazması gibi?
Merhaba,
FirmaIsmi textbox ınızın AfterUpdate olay yordamına aşağıdaki kodu yazarak deneyebilir misiniz?
FirmaIsmi textbox ınızın AfterUpdate olay yordamına aşağıdaki kodu yazarak deneyebilir misiniz?
Kod:
Dim BasHarf As String
Dim sonKaydinMusteriNosu As String
Dim sonKaydinMusteriSirasi As String
BasHarf = Left(Me.Firmaİsmi, 1)
sonKaydinMusteriNosu = DLast("MusNo", "Firmalar", "Firmaİsmi LIKE '" & BasHarf & "*'")
sonKaydinMusteriSirasi = Mid(sonKaydinMusteriNosu, 2, (Len(sonKaydinMusteriNosu) - 1))
Me.MusNo = BasHarf & CInt(sonKaydinMusteriSirasi) + 1
Konuyu Okuyanlar: 1 Ziyaretçi