AccessTr.neT
Kontrollere Toplu Kod Yazmak - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Kontrollere Toplu Kod Yazmak (/konu-kontrollere-toplu-kod-yazmak.html)

Sayfalar: 1 2 3 4 5 6 7 8


Cvp: Kontrollere Toplu Kod Yazmak - feraz - 24/01/2020

O kadar uğraştım birtürlü yapamadım.
Alttaki kodda hata veriyor normalde vermemesi gerekir ne gıcık birşeymiş bu Access.
İnsanı yaşamadan soğutuyor uğraştıkça.
Ama illaki çözülecek Img-grin





Set TxtOpt.opt = Controls("L00")

Yukarıdaki yeri birtürlü aşamadım.


Class kod

Kod:
Option Compare Database

Public WithEvents opt As MSComctlLib.ListView


Private Sub opt_ItemClick(ByVal Item As MSComctlLib.ListItem)
    veri = opt.SelectedItem
End Sub

Private Sub opt_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
    Call güncelle(opt.Name, veri)
End Sub

Form Kodu class için

Kod:
Dim TxtOpt As ClsLstvew


  For i = 0 To 3

        Set TxtOpt = New ClsLstvew

        Select Case i
            Case 0
                Set TxtOpt.opt = Controls("L00")
            Case 1 To 9
                Set TxtOpt.opt = Controls("L0" & i)
            Case 10 To 99
                Set TxtOpt.opt = Controls("L" & i)
        End Select

        Kontrol.Add TxtOpt
Next




Cvp: Kontrollere Toplu Kod Yazmak - feraz - 24/01/2020

Sanırım alttaki hata çözülürse iş tamam.

Problem güncelle fonksiyonu Form kodunda olduğu için class içinde bu fonksiyon tanınmıyor zaten normalde modül içinde olmalı.

Dosayı ekleeyim belki yapabilen çıkar.


Tabii Forms("Form2").Controls(opt).Name bu şekilde listviewin adını bulmaya çalıştım doğruysa.
Akşama doğru devam ederim çözülemezse.

Call güncelle(Forms("Form2").Controls(opt).Name, veri)



Cvp: Kontrollere Toplu Kod Yazmak - feraz - 24/01/2020

Bu arada alttaki dosya geçerli.
Access kapanmayıp donarsa form2 yi tasarım moduna getirip kapatılması gerek.
O sorun değil kodda bir yeri pasif yaptım tam ekran çıkmasın diye böyle oldu.

Kısaca apılması gereken alttaki kodu çalıştırmak class içinde.
Bence kodlar tamam.

Kod:
Call güncelle(Forms("Form2").Controls(opt).Name, veri)



Cvp: Kontrollere Toplu Kod Yazmak - accessman - 24/01/2020

hayırlı cumalar ellerinize sağlık kod şu şekilde 
Call güncelle(Forms("Form2").Controls(opt).Name, veri) 
yerine
MsgBox "merhaba"
yazarsak 20 kez "merhaba" mesajı çıkıyor kod 20 kez tekrarlanıyor neden olabilir


Cvp: Kontrollere Toplu Kod Yazmak - accessman - 24/01/2020

Kontrol değişkenini
Private Kontrol As New Collection 
ile tanımlamışız

Dim TxtOpt As ClsLstvew

    For i = 0 To 20
        Set TxtOpt = New ClsLstvew
        Select Case i
            Case 0
                Set TxtOpt.opt = Controls("L00").Object
            Case 1 To 9
                Set TxtOpt.opt = Controls("L0" & i).Object
            Case 10 To 99
                Set TxtOpt.opt = Controls("L" & i).Object
        End Select

        Kontrol.add TxtOpt
    Next


ile eleman yüklemişiz ama başka hiç bir yerde kullanmamışız
problem bundan kaynaklı olabilir mi


Cvp: Kontrollere Toplu Kod Yazmak - feraz - 24/01/2020

(24/01/2020, 08:16)accessman yazdı: hayırlı cumalar ellerinize sağlık kod şu şekilde 
Call güncelle(Forms("Form2").Controls(opt).Name, veri) 
yerine
MsgBox "merhaba"
yazarsak 20 kez "merhaba" mesajı çıkıyor kod 20 kez tekrarlanıyor neden olabilir

Hayırlı cumalar.

Kod çalışınca komple 20 defa çalışıyorsa(21 olması gere 0 dan başladığı için) şundan dolayı.

21 adet Listviewi döngü ile class içine alıyoruz.Bu yüzden cevabı sorunuzun.

Akşama doğru şu function olayınıda hallederim zaman yetmedi dün.