Sürekli Formda MüşteriID Değerine Göre Renklendirme

Katılım
27 Kasım 2006
Mesajlar
152
Excel Vers. ve Dili
office xp
Altın Üyelik Bitiş Tarihi
13-09-2021
Arkadaşlar herkeze selamlar gönderdiğim örnekte sürekli formda verileri MüşteriID değerine renklendirmek istiyorum ayni ID ye sahip olanlar ayni renk ID değeri aynı olmayanlar farklı renk olsun istiyorum ama bunu nasıl yapacağım hakkında hiçbirfikrim yok yardım edebilirseniz sevinirim herkeze şimdiden teşekkür ederim.
 
Katılım
27 Kasım 2006
Mesajlar
152
Excel Vers. ve Dili
office xp
Altın Üyelik Bitiş Tarihi
13-09-2021
Arkadaşlar bu konuda fikri olan yok mu takıldım kaldım bu renklendirme yüzünden.
 
Katılım
27 Kasım 2006
Mesajlar
152
Excel Vers. ve Dili
office xp
Altın Üyelik Bitiş Tarihi
13-09-2021
Sorun çözüld

Arkadaşlar sorunu çözdüm belki lazım olur diye örneği ekliyorum herkeze iyi çalışmalar :hey:
 
Katılım
31 Ağustos 2005
Mesajlar
1,534
Excel Vers. ve Dili
Excel 2003 - Türkçe
Arkadaşlar sorunu çözdüm belki lazım olur diye örneği ekliyorum herkeze iyi çalışmalar :hey:
Sayın kocivan;

Paylaşımına teşekkürler. Fakat Form açılmadan önce hata iletisi veriyor, fakat akabinde form açılıyor.

Bir de Sorunu ne şekilde çözdüğünüzü açıklarsanızçok iyiolacak.

Selamlar.
 
Katılım
27 Kasım 2006
Mesajlar
152
Excel Vers. ve Dili
office xp
Altın Üyelik Bitiş Tarihi
13-09-2021
Sayın İsmail Küçükşengün nasıl bir hata iletisi verdi acaba açıklamada yapacağım tabi hata nerden kaynaklanıyor onu anlayım önce çünkü bende hata vermeden açılıyor saygılar
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba İsmail Bey..

Sayın kocivan'ın çözümü ADO ile yapılmış.. Sizin sisteminizde bununla ilgili daha önceden de bir sıkıntı vardı.. Sorun devam ediyor belli ki..;) Sanırım sizde açılmamasının sebebi bu..

Saygılar..
 
Katılım
27 Kasım 2006
Mesajlar
152
Excel Vers. ve Dili
office xp
Altın Üyelik Bitiş Tarihi
13-09-2021
Sayın Taruz haklı sanırım Service Pack ve güncellemelerle ilgili galiba sorun sizde tüm güncellemelerin kurulu olduğuna emin misiniz ?
 
Katılım
31 Ağustos 2005
Mesajlar
1,534
Excel Vers. ve Dili
Excel 2003 - Türkçe
Sayın Taruz ve kocivan;

Teşekkürler. Fakat ne yaptıysam ADO sorunu çözülemedi.

Sayın Kocivan, siz farklı renlendirme olayı açıklarsanız sevinirim.
 
Katılım
27 Kasım 2006
Mesajlar
152
Excel Vers. ve Dili
office xp
Altın Üyelik Bitiş Tarihi
13-09-2021
Müşteri bilgilerini Tablo2 ye kaydettiğimizi varsayalım Tablo1're de müşterilerle ilgili
gider gelir kira vs gibi şeyleri kaydediyoruz ayni zamanda Tablo1'e renklendirme için kullanmak üzere Sıra (Sayı) ve Çift/Tek (Metin) diye iki tane alan ekliyoruz amaç eklediğimiz Sıra alanında MüşteriID değerine göre grup oluşturmak sonra bu oluşan gruptan yaralanarak rakamların çift yada tek olmasına bağlı olarak Çift/Tek
alanına rakam çift ise "Ç" tek ise "T" yazdırıyoruz.Gelelim yazacağımız koda formun
yüklenildiğinde olayına aşağıdaki kodu yazı yoruz bu kod ne yapıyor :

Private Sub Form_Load()
'Sıra numarası oluşturmak için i diye bir değişken tanımlıyoruz
Dim i As Integer
'Tablo1 e bağlanmak için rs diye yenibir kayıt kümesi tanımlıyoruz
Dim rs As New ADODB.Recordset
'Tablo2 ye bağlanmak için rs1 diye yenibir kayıt kümesi tanımlıyoruz
Dim rs1 As New ADODB.Recordset
Set rs = New ADODB.Recordset
Set rs1 = New ADODB.Recordset
'Bağlantı durumunu belirliyoruz yani açılan kayıt kümesini nasıl kullanmak istediğimizi
rs.Open "Tablo1", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs1.Open "Tablo2", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

'i değişkenine 0 değerini atıyoruz

i = 0
'rs1 olarak tanımladığımız kayıt kümesinin EOF özelliği True değerine eşit değilse
'kodu çalıştır diyoruz eğer bu değer True ise kayıt kümesinin sonuna ulaşılmış demektir
If rs1.EOF <> True Then
'rs1 adındaki kayıt kümesinin ilk kaydına gidiyoruz
rs1.MoveFirst
'Do Until Loop döngüsünü kullanarak rs1 kayıt kümesinin değeri EOF=True olana kadar
'Kodun çalışmasını sağlıyoruz
Do Until rs1.EOF = True
'rs olarak tanımladığımız kayıt kümesinin EOF özelliği True değerine eşit değilse
'kodu çalıştır diyoruz eğer bu değer True ise kayıt kümesinin sonuna ulaşılmış demektir
If rs.EOF <> True Then
'rs adındaki kayıt kümesinin ilk kaydına gidiyoruz
rs.MoveFirst
'Burada iki kayıt kümesindeki MüşteriID değerlerinin eşit olup olmadıklarını kontrol ediyoruz
'eğer eşitse rs kayıt kümesindeki sıra alanına i değişkenine atıyoruz tabi ondan önce sıra numarasının
'1 den itibaren başlaması için i değişkenine 1 değerini atıyoruz
Do
If rs("ID") = rs1("MID") Then
i = 1
rs("Sıra") = i
End If
'Kayıt kümesinde dolaşabilmek için sonraki kayda geçiyoruz
rs.MoveNext
'Eğer rs.EOF = True ise kod sonlanıyor bu kod ilk kaydın Sıra numarasına 1 değeri veriyor
Loop Until rs.EOF = True
Else
'Yukarıda kayıt kümesini dolaşıp kayıt kümesinin değerini True ya eşitlediğimiz den dolayı
'Aşağıdaki kodun çalışması için rs.EOF <> False ise diyoruz
If rs.EOF <> False Then
'rs adındaki kayıt kümesinin ilk kaydına gidiyoruz
rs.MoveFirst
'Burada iki kayıt kümesindeki MüşteriID değerlerinin eşit olup olmadıklarını kontrol ediyoruz
'Eşit ise rs("Sıra") değerinin belirlenmesi için aşağıdaki kod çalışıyor peki bu kod ne yapıyor?
'ID değerini DlookUp fonksiyonuyla Sıra no alanına göre arama yaptırıp karşılaştırıyoruz
'(yani yukarıdaki ilk kodda ilk kaydın sıra numarasını 1'e eşitlemiştik yani Dmax = 1 -1 = 0 olduğundan dolayı
'ikinci fonksiyon devreye giriyor i + DMax("Sıra", "Tablo1") bu fonksiyon ikinci kayda 2 değerini veriyor
've tabiki sonrakı kayda geçiyor ve kaydı yine DlookUp fonksiyonunu kullanarak Sıra numarasına göre aratıyoruz
'eğer ID değerleri eşit ise (i + DMax("Sıra", "Tablo1") - 1) bu kodu kullanarak ayni ID ye sahip olanlara ayni numarayı veriyor
'rs("Sıra") = IIf(rs("ID") = DLookup("ID", "Tablo1", "Sıra= " & (i + DMax("Sıra", "Tablo1") - 1) & " "), (i + DMax("Sıra", "Tablo1") - 1), i + DMax("Sıra", "Tablo1"))
Do
If rs("ID") = rs1("MID") Then
i = 1
rs("Sıra") = IIf(rs("ID") = DLookup("ID", "Tablo1", "Sıra= " & (i + DMax("Sıra", "Tablo1") - 1) & " "), (i + DMax("Sıra", "Tablo1") - 1), i + DMax("Sıra", "Tablo1"))
'Bu ifadeyi kullanarak Immediate penceresine değerleri yazdırıyoruz Ctrl+G tuşuna basarak bu pencereye
'ulaşıp kayıtların nasıl karşılaştırıldığını göre bilirsiniz
'Debug.Print DLookup("ID", "Tablo1", "Sıra= " & (i + DMax("Sıra", "Tablo1") - 1) & " "); rs("Sıra")
Debug.Print DLookup("ID", "Tablo1", "Sıra= " & (i + DMax("Sıra", "Tablo1") - 1) & " "); rs("Sıra")
End If
rs.MoveNext
Loop Until rs.EOF = True
End If
End If
rs1.MoveNext
Loop
End If
'Burada tanımladığımız kayıt kümelerini kapatıyoruz kapatmazsak felakete yol açıyoruz
rs.Close
rs1.Close
Set rs = Nothing
Set rs1 = Nothing
'Sıra Numaraları verdikten sonra Çift/Tek alanına sıra numaralırını çift yada tek
'olmasına göre Ç yada T değerlerini yazdırıyoruz
'Çift Tek
Dim rs3 As New ADODB.Recordset
Set rs3 = New ADODB.Recordset
rs3.Open "Tablo1", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs3.MoveFirst
If rs3.EOF <> True Then
Do
'Tek ise T yazdır
If rs3("Sıra") Mod 2 = 1 Then
Debug.Print rs3("Sıra") Mod 2 = 1
rs3("ÇT") = "T"
Else
'Çift ise Ç yazdır
If rs3("Sıra") Mod 2 = 0 Then
Debug.Print rs3("Sıra") Mod 2 = 1
rs3("ÇT") = "Ç"
End If
End If
rs3.MoveNext
Loop Until rs3.EOF = True
End If
rs3.Close
Set rs3 = Nothing
End Sub


Private Sub Form_Close()
'form kapanırken Sıra numaralarını 0 a eşitliyoruz eşitlemezsek sıra numarası gittimi gider
Dim rs As New ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open "Tablo1", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs.MoveFirst
If rs.EOF <> True Then
Do
rs("Sıra") = 0
rs.MoveNext
Loop Until rs.EOF = True
End If
rs.Close
Set rs = Nothing
End Sub

Son olarakta fomdaki alanlara koşullu biçimlendirme yoluyla IIf([ÇT]="T";1;0) ise gri renk yap diyoruz ve böylece renkleniyor ortalık
Anlamadığınız bir yer olursa sorun
İyi çalışmalar :hey:
 
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
bir yanl&#305;&#351;l&#305;k olmu&#351; dah &#246;nce okuyanlar kaale almas&#305;nlar yazd&#305;klar&#305;m&#305; kocivan karde&#351; sen ger&#231;ekten iyisin ellerinden &#246;perim
 
Son düzenleme:
Katılım
27 Kasım 2006
Mesajlar
152
Excel Vers. ve Dili
office xp
Altın Üyelik Bitiş Tarihi
13-09-2021
Teşekkürler Sayın Gülsüm1 sizlerden öğrendiklerimizi uygulamaya çalışıyoruz.

Arkadaşlar formu biraz daha değiştirdim ilk örneğimiz veri girmek için kullanılabilir şimdi yolladığım örneği verileri göstermekte kullana bilirsiniz ben öyle yapacağım
herkeze iyi çalışmalar :hey: :icelim:
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Te&#351;ekk&#252;r, say&#305;n kocivan..
 
Katılım
31 Ağustos 2005
Mesajlar
1,534
Excel Vers. ve Dili
Excel 2003 - Türkçe
Say&#305;n kocivan;

A&#231;&#305;klamalar&#305;n&#305;za &#231;ok te&#351;ekk&#252;rler.
 
Üst