Virgülle Ayrılmış Verilerin Her Bir Değerini Yeni Kayıt Olarak Ekleme
#1
Herkese Merhaba,
Başlıktaki konu için internetten bir çözüm buldum ve projeme uyguladığımda sorun olmadı ama biliyorsunuz her ihtimali bazen deneyemiyoruz o yüzden aşağıdaki kod resimlerdeki sonucu üretme açısında handikapları var mı? 

objRegex.Pattern = "^\s+(.+?)$" yazan kısmın mesela ne işe yaradığını anlayamadım.

Visual Basic
  1.    Dim db As DAO.Database
  2.    Dim rsInput As DAO.Recordset
  3.    Dim rsOutput As DAO.Recordset
  4.    Dim strSQL As String
  5.    Dim strArr() As String
  6.    Dim objRegex As Object
  7.  
  8.    ' Access nesnelerini oluştur
  9.    Set db = CurrentDb
  10.    Set rsInput = db.OpenRecordset("YourInputTable", dbOpenSnapshot)
  11.    Set rsOutput = db.OpenRecordset("YourOutputTable", dbOpenDynaset)
  12.  
  13.    ' Regex nesnesini oluştur
  14.    Set objRegex = CreateObject("vbscript.regexp")
  15.    objRegex.Pattern = "^\s+(.+?)$"
  16.  
  17.    ' Giriş tablosundaki her kayıt için işlem yap
  18.    Do Until rsInput.EOF
  19.        strArr = Split(rsInput.Fields("Veri").Value, ",")
  20.  
  21.        ' Her bir eleman için işlem yap
  22.        For i = LBound(strArr) To UBound(strArr)
  23.            ' Yeni bir kayıt oluştur
  24.            rsOutput.AddNew
  25.            rsOutput.Fields("id").Value = rsInput.Fields("id").Value
  26.            rsOutput.Fields("Veri").Value = objRegex.Replace(strArr(i), "$1")
  27.            rsOutput.Update
  28.        Next i
  29.  
  30.        rsInput.MoveNext
  31.    Loop
  32.  
  33.    ' Nesneleri serbest bırak
  34.    rsInput.Close
  35.    rsOutput.Close
  36.    Set rsInput = Nothing
  37.    Set rsOutput = Nothing
  38.    Set db = Nothing
  39.    Set objRegex = Nothing




Eklenti Dosyaları
.jpg   access.JPG (Boyut: 96,78 KB / İndirilme: 18)



  Alıntı
Bu mesajı beğenenler:
#2
(26-11-2023, 23:19)adnnfrm demiş ki: objRegex.Pattern = "^\s+(.+?)$" yazan kısmın mesela ne işe yaradığını anlayamadım.

Kodunuz ile deneme yaptığımda. Split ile alınan verinin başındaki ve sonundaki boşlukları kaldırmakta kullanılmış.
Patern ile Detayli Bilgi incelenebilir.



  Alıntı
Bu mesajı beğenenler:
#3
(27-11-2023, 09:16)dsezgin demiş ki:
(26-11-2023, 23:19)adnnfrm demiş ki: objRegex.Pattern = "^\s+(.+?)$" yazan kısmın mesela ne işe yaradığını anlayamadım.

Kodunuz ile deneme yaptığımda. Split ile alınan verinin başındaki ve sonundaki boşlukları kaldırmakta kullanılmış.
Patern ile Detayli Bilgi incelenebilir.

Boşluk demişsiniz hocam ama orada farklı karakterler var. Ve içlerinde boşlukta yok :// Anlamadım.
Birde kodun sizce handikabı var mı?



  Alıntı
Bu mesajı beğenenler:
#4
Visual Basic
  1. Sub dfdfs()
  2. veri = " Ahmet1, mehmet, sali, ahmet , 145,sureya "
  3. Set objRegex = CreateObject("vbscript.regexp")
  4. objRegex.Pattern = "^\s+(.+?)$"
  5. strArr = Split(veri, ",")
  6.  
  7. ' Her bir eleman için islem yap
  8. For i = LBound(strArr) To UBound(strArr)
  9. Debug.Print "-" & objRegex.Replace(strArr(i), "$1") & "-"
  10. Next
  11. End Sub



Deneme prosedürü, veri olan yeri, debug ile immedia'a yazdırılmasını gözlemleyebilirsin.



  Alıntı
Bu mesajı beğenenler:
#5
sondaki boşlukları temizlemiyor hocam onu mu kastediyorsunuz.



  Alıntı
Bu mesajı beğenenler:
#6
(27-11-2023, 18:59)adnnfrm demiş ki: Boşluk demişsiniz hocam ama orada farklı karakterler var. Ve içlerinde boşlukta yok :// Anlamadım.
Birde kodun sizce handikabı var mı?

Pattern şablonu incelenecek verinin boşluk olursa talimatı. Eğer isimlerin başında boşluklu giriş olmuşsa, Boşlukları kaldır seklinde kullanılmış.
Tablodan çağrılmış veri de benzer veri girişi yoksa kullanılmasa da olur.

veri = "       Ahmet1, mehmet,       sali, ahmet  , 145,sureya  "

buradaki veri boşluklu isimlerin önlerinde ve arkalarında virgüle kadar mevcut.

-Ahmet1-
-mehmet-
-sali-
-ahmet  -
-145-
-sureya  -

isimlerin başındaki tüm boşlukları kaldırıp, yazdırıyor. Sizin veriniz büyük ihtimalle çoklu secim türünde bir alanda olduğu için sondaki boşluklar olmayacaktır. Tüm isimler alt alta boşluksuz yazdırılacaktır.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  [FORM] Onay Kutususun şarta Bağlı Olarak Otomatik Olarak Işaretlenmesi Samih KARSLI 2 109 06-04-2024, 18:49
Son Mesaj: Samih KARSLI
  [FORM] Alt Forum Dan Tıklandıgında Yenı Form Acmak sevincili 2 113 29-03-2024, 15:54
Son Mesaj: sevincili
access-sql-18 Insert ile formdan tabloya kayıt ekleme Enigmatic 18 20.633 07-02-2024, 18:41
Son Mesaj: halil.tefci
  Verilerin Tree View şeklinde Gösterimi adnnfrm 2 132 15-11-2023, 00:20
Son Mesaj: adnnfrm
  Formu Pdf Olarak Kaydetme snapper 8 255 01-11-2023, 22:59
Son Mesaj: dsezgin
  Sürekli Formda Yeni Kayıt üstte Olsun hegu 4 188 05-10-2023, 20:55
Son Mesaj: hegu
  12 Saatlik (am-pm) Metin Olarak Girilmiş Saat Verisini 24 Saatlik Olarak Gösterme Hk. adnnfrm 2 150 05-10-2023, 03:16
Son Mesaj: adnnfrm
  Raporları Gezinme Araçlı Pdf Olarak Dışarı Aktarmak Hk. adnnfrm 4 178 04-10-2023, 10:34
Son Mesaj: dsezgin

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi