AccessTr.neT
Liste Kutusunun Sutun Sayisinin Gelen Sonuca Gore Degismesi - 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ığı: Liste Kutusunun Sutun Sayisinin Gelen Sonuca Gore Degismesi (/konu-liste-kutusunun-sutun-sayisinin-gelen-sonuca-gore-degismesi.html)

Sayfalar: 1 2 3


Cvp: Liste Kutusunun Sutun Sayisinin Gelen Sonuca Gore Degismesi - adnanyurdakul - 04/05/2009

Sayın dengesiz
bak bu seferki sorun güzel ama şimdide örneğin garip Img-grin

cevap Private Sub Metin0_AfterUpdate()
Dim Sql As String
sql = Metin0
Dim db As Database
Dim say As Integer
Dim rst As Recordset, intI As Integer
Dim fld As Field
say = 0
Set db = CurrentDb
Set rst = db.OpenRecordset(sql)
For Each fld In rst.Fields
say = say + 1

Next


Me.Liste2.RowSource = sql
Me.Liste2.RowSourceType = "table/query"
Me.Liste2.ColumnCount = say
Me.Liste2.ColumnWidth = 2
End Sub


ancak liste kutusunun satır kaynağı boş eleman sayısı default=1 de kalmalı
iyi çalışmalr


Cvp: Liste Kutusunun Sutun Sayisinin Gelen Sonuca Gore Degismesi - esrefigit - 04/05/2009

kodu bununla değiştir

Private Sub Metin0_AfterUpdate()
Me.Liste2.RowSource = ""
Dim Rs As New ADODB.Recordset
Dim Sql As String
Dim say As Integer
sql = Me.Metin0
Dim fld As ADODB.Field
Rs.Open sql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
say = 0
For Each fld In Rs.Fields
say = say + 1
Me.Liste2.ColumnWidths = Me.Liste2.ColumnWidths & ";"
Next fld

Me.Liste2.ColumnCount = say
Rs.Close
Me.Liste2.RowSource = Me.Metin0
End Sub
özür adnan kardeş görmedim örneğine gelince garip değil yinelenmiş bir örnek aslında asıl örneği eklememiş yinelenmiş veritabanını eklemiş


Cvp: Liste Kutusunun Sutun Sayisinin Gelen Sonuca Gore Degismesi - okileturc - 04/05/2009

2 hocaya da tşk, harika çözüm ben de kullanacağım Img-grin


Cvp: Liste Kutusunun Sutun Sayisinin Gelen Sonuca Gore Degismesi - dengesiz - 04/05/2009

Herkese tesekkur ederim cidden cok guzel bir paylasim ve ogrenim sitesi.
Sayin esrefigit kodlarinizi tekrar kontrol edebilir misiniz database baglantiniz hata veriyor.

Sayin adnanyurdakul sizin vermis oldugunuz ornekte de Select * from WLNDG yazdigimizda sutunlar oluyor ama genislikleri daraliyor ilgilenirseniz sevinirim.


Cvp: Liste Kutusunun Sutun Sayisinin Gelen Sonuca Gore Degismesi - Bilgisayarcı - 04/05/2009

Arkadaşlar bu örnekte çözümü yavaşlatmışsınız sanki.
İki örnekte sql'i 2 kere açıyor. bir kere alanları saymak için bir kere de rowsource olarak yanlıyor muyum?

Daha basit çözüm olarak (sanrıım daha da hızlı) metin0 içindeki texti parametre olarak alan bi rfonksiyon yazalım derim. İlk select - from arasındaki virgülleri sayıp birle toplarsa alan sayısı ortaya çıkar zaten.
fonksiyonun kilit noktası da aşağıdaki gibi olursa sorun yok
sayi=1
p=instr(1,sql,",")
while p>0
sayi=sayi+1
p= instr(1,sql,",")
sql= right(sql,len(sql)-p)
wend
sonuc=sayi+1


--

sonradan aklıma geldi Img-grin NZ gibi işlemlerde bu virgül olayı biraz saçmalar sanırım ama ( bularak onu da aşabilriz. Derdim sql'i iki defa açmamak. Eğer illa açıyorsak rowsource'u açtığımız dataset haline getirmeye yoğunlaşmak lazım. Küçük sorgularda sorun değil ama büyüklerinde bekleme süresi iki katına çıkar..


Cvp: Liste Kutusunun Sutun Sayisinin Gelen Sonuca Gore Degismesi - dengesiz - 04/05/2009

(04/05/2009, 14:45)Bilgisayarcı yazdı: Arkadaşlar bu örnekte çözümü yavaşlatmışsınız sanki.
İki örnekte sql'i 2 kere açıyor. bir kere alanları saymak için bir kere de rowsource olarak yanlıyor muyum?

Daha basit çözüm olarak (sanrıım daha da hızlı) metin0 içindeki texti parametre olarak alan bi rfonksiyon yazalım derim. İlk select - from arasındaki virgülleri sayıp birle toplarsa alan sayısı ortaya çıkar zaten.
fonksiyonun kilit noktası da aşağıdaki gibi olursa sorun yok
sayi=1
p=instr(1,sql,",")
while p>0
sayi=sayi+1
p= instr(1,sql,",")
sql= right(sql,len(sql)-p)
wend
sonuc=sayi+1


--

sonradan aklıma geldi Img-grin NZ gibi işlemlerde bu virgül olayı biraz saçmalar sanırım ama ( bularak onu da aşabilriz. Derdim sql'i iki defa açmamak. Eğer illa açıyorsak rowsource'u açtığımız dataset haline getirmeye yoğunlaşmak lazım. Küçük sorgularda sorun değil ama büyüklerinde bekleme süresi iki katına çıkar..



Sayin Bilgisayarcı verdigim eklenti uzerinde yapabilir misiniz ? nasil oldugunu gormemiz acisindan ?Tesekkurler