Kayıtların Form Üzerine Dağıtılması

1 2 3
28/01/2025, 23:21

karaayhan

örnekteki dosyada bulunan veriler sürekli form veya herhangi bir formda
yatay ve dikey olarak verilerin dağıtılmasını istiyorum

sistem sadece alt alta veya aynı hücrede verileri döndürmektedir..
29/01/2025, 01:47

aydin5353

Kendi formlarımda buna benzer bir uygulamam var. Alt form kullanarak yada ilişiksiz metin kutusu oluşturup Vba ile verileri çağrılarak bu istediğiniz yapılabilir. 
Ancak;
Tablonuzda 12 kayıt var, oluşturduğunuz formda 9 bölüm var. 
1- Tablodan hangi satırdaki verinin gelmesini planlıyorsunuz. İlk 9, son 9 yada farklı kombinasyon. Hangisi nereye gelecek ?
2- Tablodan yalnızca ürün adı mı aktarılacak? Satırdaki diğer sütun verileriyle ilgili bir işlem yapılacak mı ?
3- "Tablodaki tüm verilerin mavi kutulara dağılmasını istiyorum" şeklinde yazmışsınız, tablodaki 12 veri artacak mı? örneğin 25 olduğunda formdaki kutular buna göre artış gösterecek mi ve form uzayacak mı?

Tam olarak istenen şeyler net olarak belirtilirse belki benim önerilerim, belki uzmanların daha pratik önerileri sayesinde çözüme kavuşabilirsiniz.
29/01/2025, 11:02

onur_can

şu şekilde çözüm önerisi sunabilirim, Formunuza kaç tane kayıt gelecekse o kadar textbox yerleştirin (siz kutu yerleştirmişsiniz)
daha sonra formun Current olayına aşağıdaki kodu yazın.
Private Sub Form_Current()
Dim rs As DAO.Recordset
Dim i As Integer
Dim ctlr As Control

Set rs = CurrentDb.OpenRecordset("tbl_urun")
For Each ctlr In Me.Controls
If TypeOf ctlr Is TextBox Then
For i = 0 To ctlr.Controls.Count
On Error Resume Next
ctlr.Value = rs!urunadi
rs.MoveNext
Next i
End If
Next

End Sub

eğer yukarıdan aşağı sıralamak isterseniz MoveNext, MovePrevious komutlarıyla ayarlamalar yapın.
29/01/2025, 14:14

karaayhan

(29/01/2025, 11:02)onur_can yazdı: şu şekilde çözüm önerisi sunabilirim, Formunuza kaç tane kayıt gelecekse o kadar textbox yerleştirin (siz kutu yerleştirmişsiniz)
daha sonra formun Current olayına aşağıdaki kodu yazın.
Private Sub Form_Current()
Dim rs As DAO.Recordset
Dim i As Integer
Dim ctlr As Control

Set rs = CurrentDb.OpenRecordset("tbl_urun")
For Each ctlr In Me.Controls
If TypeOf ctlr Is TextBox Then
For i = 0 To ctlr.Controls.Count
On Error Resume Next
ctlr.Value = rs!urunadi
rs.MoveNext
Next i
End If
Next

End Sub

eğer yukarıdan aşağı sıralamak isterseniz MoveNext, MovePrevious komutlarıyla ayarlamalar yapın.



kodlar olmadı ya da ben eksik yaptım kodlarınızın uygulanmış hali ve ne aynı dosyada oluşturduğum rapor önizle
tam olarak ne yapmak istediğimi anlatıyor..

kayıt sayısı belirsiz elbette buradaki örnek sadece 50 olur 100 olur konu örnekteki rapor nasıl üç sütun halinde ise bu da öyle olsun istiyorum..
29/01/2025, 15:18

berduş

sadece 3 sütun yeterli mi?
29/01/2025, 15:44

karaayhan

yeterli olur hocam
1 2 3