Dosyayı açtıktan sonra YENITABLO tablosuna bakın boş olduğunu göreceksiniz veya boşaltın kayıt kalmasın.
Daha sonrra Form1 çalıştırın. Bu form YENITABLO yu istediğiniz formatta dolduracaktır...
Dilerim işinize yarar
açılan formdaki düğmeye basınca alanı parçalara ayırıp tabloya yeni kayıt olarak ekler, bitişik verili eski kayıtları siler
1 form, 1 modül ve 1 sorgu eklenmiştir
Modüldeki fonksiyonlar
Public 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
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
formdaki kodlar
Private Sub BtnSay_Click()
Dim sql, SqlStn, SqlEkle, SqlSil As String
Dim xStnSay, x As Integer
Sql = "SELECT max(SplitStnSay([kisiler])) AS [HstStn] FROM Tablo1"
CurrentDb.QueryDefs("KsBol").sql = sql
xStnSay = DMax("HstStn", "KsBol")
'hy Union____________________________
SqlStn = ""
For x = 1 To xStnSay
SqlStn = SqlStn & " union all SELECT [sınıf],[sınıf durumu], Nz(SplitVeriBul([kisiler]," & x - 1 & "),'') AS [HstStn] from tablo1 " & _
" where Nz(SplitVeriBul([kisiler]," & x - 1 & "),'')<>'' and [kisiler] like '*,*'" & vbCrLf
Next x
Sql = Mid(SqlStn, 11)
Sql = " SELECT [sınıf],[sınıf durumu],[HstStn] FROM (" & Sql & ") as UnionQuery"
CurrentDb.QueryDefs("KsBol").sql = sql
SqlEkle = "INSERT INTO Tablo1 ([sınıf], [sınıf durumu], [kisiler]) " & _
"SELECT KsBol.sınıf, KsBol.[sınıf durumu], KsBol.HstStn " & _
"FROM KsBol"
SqlSil = "DELETE " & _
"FROM Tablo1 " & _
"WHERE (((Tablo1.kisiler) Like ""*,*""))"
CurrentDb.Execute SqlEkle
CurrentDb.Execute SqlSil
End Sub
Cevaplarınız için çok teşekkür ederim. konu power ve berduş'un yardımıyla çözülmüştür.
Iyice kontrol ettiniz mi? Az veride bende sorun çıkarmadı ama çok veride hatalı olabilir, ayrıca kodu ard arda bir kaç defa çalışırdınız mi? Aynı verileri tekrar ekliyor mu?
power'in ki uzun verilerde sorun çıkarmadı ancak kişiler arasında bulunan ',' işareti silinmiyor. ancak sizin örnekte siliniyor. ancak sizin örnekte de bir defada 1600 veri ekleme yaptığımda şahıslar 4.000 veri üzerinde olduğundan sorgu hatası veriyor.
(05/05/2020, 00:12)sfenksturk yazdı: sizin örnekte de bir defada 1600 veri ekleme yaptığımda şahıslar 4.000 veri üzerinde olduğundan sorgu hatası veriyor.
tam olarak anlamadım izlediğiniz yolu anlatır mısınız?
1600 kayıt varken programı calistirdiginizda ne hatası veriyor