Skip to main content

AccessTr.neT


Kontrollere Toplu Kod Yazmak

Kontrollere Toplu Kod Yazmak

#19
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

Cevapla
#20
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)
.rar Class Listview sürükle.rar (Dosya Boyutu: 100,56 KB | İndirme Sayısı: 2)
Cevapla
#21
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)
.rar Class Listview sürükle.rar (Dosya Boyutu: 101,99 KB | İndirme Sayısı: 1)
Cevapla
#22
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
Cevapla
#23
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
Cevapla
#24
(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.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task