Arkadaşlar merhaba e-okuldan öğrenci sorumluluk sınavlarını indirdim. Bunları ham veri halinde Excel ve Access ile tablolara dönüştürdüm. Öğrenci id ile dersleri ilişkilendirip. "dersler" alanındaki dersleri her öğrenci id ye karşılık "dersler" alanındaki verileri alt alta bir tabloda listelemek istiyorum. Teşekkürler.
Hücre İçinde Virgülle Ayrılan "dersleri" Altalta Satır Olarak Listelemek.
dilerim işinize yarar
modüle eklenecek fonksiyonların kodu
Maksimum sütun sayısını bulan fonk
ama şöyle bir sorun tablonuzdaki veriler değişken olduğu için sorgunun güncel olabilmesi için sorgu çalıştırılmadan önce SorguYap fonksiyonunun çağrılması gerek
Not: Bence kurduğunuz 1-1 ilişki sorun çıkarabilir, 2 tablonun da ID alanları otomatik tamsayı, kazara tabloların birinden silinecek veya sadece tablolardan birine eklenecek bir kayıt sisteminizin hatalı işlemesine neden olabilir
modüle eklenecek fonksiyonların kodu
Maksimum sütun sayısını bulan fonk
Public Function SplitStnSay(GVeri As String, Optional Ayrac As String = ",") As Integer
On Error Resume Next
Dim var As Variant
Dim GAyrac As String
GAyrac = Ayrac
var = Split(GVeri, Ayrac)
SplitStnSay = UBound(var) + 1
End Function
her sütundaki veriyi alan fonksiyonPublic Function SplitVeriBul(GVeri As String, GSayi, Optional Ayrac As String = ",") As Variant
On Error Resume Next
Dim var As Variant
Dim GAyrac As String
GAyrac = Ayrac
var = Split(GVeri, GAyrac)
SplitVeriBul = var(GSayi)
End Function
sorguları yeniden oluşturan kodPublic Function SorguYap()
Dim sql, SqlStn As String
Dim xStnSay, x As Integer
Dim ADO_RS As Object
Sql = "SELECT max(SplitStnSay(nz([DERSLER],''))) FROM dersler_birlesik"
Set ADO_RS = CreateObject("adodb.recordset")
ADO_RS.Open sql, CurrentProject.Connection, 3, 1
xStnSay = ADO_RS(0)
ADO_RS.Close
Set ADO_RS = Nothing
'hy Sorguyu sütunlara böl
SqlStn = ""
For x = 1 To xStnSay
SqlStn = SqlStn & ", SplitVeriBul(nz([DERSLER],'')," & x - 1 & ") AS [DERSLERStn" & CStr(x) & "]"
Next x
Sql = "SELECT id, " & Mid(SqlStn, 2) & " FROM dersler_birlesik;"
CurrentDb.QueryDefs("DrsBol").sql = sql
'hy Union____________________________
SqlStn = ""
For x = 1 To xStnSay
SqlStn = SqlStn & " union all SELECT id, Nz(DERSLERStn" & x & ",'') AS [DERSLERStn] from DrsBol " & _
" where Nz(DERSLERStn" & x & ",'')<>''" & vbCrLf
Next x
Sql = Mid(SqlStn, 11)
'
'hy________________________________________
CurrentDb.QueryDefs("DrsAyir").sql = sql
DoCmd.OpenQuery "DrsAyir"
End Function
DrsAyir sorgusu dersleri satır halinde gösterirama şöyle bir sorun tablonuzdaki veriler değişken olduğu için sorgunun güncel olabilmesi için sorgu çalıştırılmadan önce SorguYap fonksiyonunun çağrılması gerek
Not: Bence kurduğunuz 1-1 ilişki sorun çıkarabilir, 2 tablonun da ID alanları otomatik tamsayı, kazara tabloların birinden silinecek veya sadece tablolardan birine eklenecek bir kayıt sisteminizin hatalı işlemesine neden olabilir
İlk önce verileri hatalı ıralanmış sandım fakat id ye göre sıralama yaptım sonuç doğru çıktı teşekkür ederim. Şimdi işin geri kalanını yapmak kaldı
çalışmanızın tamamını bilmiyorum o nedenle vardığım yargı yanlış olabilir ama ID alanınıza dikkat edin bu yapıyla ilerde sorun çıkabilir
iyi çalışmalar
iyi çalışmalar
Merhaba,
yapmış olduğunuz modülde bir hata ortaya çıktı. Dersleri id ye göre doğru sıralamıyor. Acaba nerde hata var bakabilirmisiniz.
yapmış olduğunuz modülde bir hata ortaya çıktı. Dersleri id ye göre doğru sıralamıyor. Acaba nerde hata var bakabilirmisiniz.
Kontrol ettiğimde doğruydu hangi Idlerde hata veriyor?
Fonksiyonu nasil kullanıyorsunuz, resim ve dosyanızı da ekleyerek açıklar mısınız?
Fonksiyonu nasil kullanıyorsunuz, resim ve dosyanızı da ekleyerek açıklar mısınız?
Konuyu Okuyanlar: 1 Ziyaretçi