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
Dnm_hy.rar
(Dosya Boyutu: 25,95 KB | İndirme Sayısı: 4)