Update Hatası

1 2
20/01/2019, 00:37

berduş

eğer metin alanları sıralı ise belki tag özelliği işinize yarayabilir
önce değerlerin olduğu metin kutularını seçip im/tag="ekle" yada istediğiniz bir şey yapın
aşağıdaki koda benzer bir şeyler deneyebilirsiniz
formdaki tum nesneleri kontrol edip im/tag="ekle" olanları txtstring ekler


Dim kutu As Control

dim txtdeger as string

txtdeger=""
For Each kutu In Me
  
If kutu.Tag = "ekle" Then txtdeger= iif(isnull(txtdeger);kutu;"," & kutu)  
Next

DoCmd.RunSQL "INSERT INTO tablo2 (Daire,Mahalle,....) VALUES ('" & txtstring & "')"
20/01/2019, 02:54

zaferlacin

If kutu.Tag = "ekle" Then txtdeger= iif(isnull(txtdeger);kutu;"," & kutu)
kırmızı syntx hatası veriyor 
;kutu; değerinin işaretlerini , yapınca syntx hatası gidiyor
If kutu.Tag = "ekle" Then txtdeger= iif(isnull(txtdeger),kutu,"," & kutu)

bu sefer de sorgu değerleri ile hedef alanlarının sayısı aynı değil
hatası alıyorum
20/01/2019, 10:51

berduş

Private Sub Komut62_Click()
Dim kutu As Control
Dim txtDeger As String
txtDeger = ""
For Each kutu In Me
   If kutu.Tag = "ekle" Then txtDeger = txtDeger & IIf(txtDeger = "", kutu, "','" & kutu)
Next
DoCmd.RunSQL "INSERT INTO tablo2 (adı,soyadı,tc) VALUES ('" & txtDeger & "')"
End Sub
kodu düzelttim 
2. yöntem olarak eğer alanlar sıralı ise
1. alan= metin1 
2. alan =metin2
…….
125alan =metin125

biçimimde ise ve aynı formd ise
for i=1 to metin kutusu sayısı
txtdeger=txtDeger & iif(txtdeger="",controls("metin" & i),"','" & controls("metin" & i))
next
DoCmd.RunSQL "INSERT INTO tablo2 (adı,soyadı,tc) VALUES ('" & txtstring & "')"

farklıformda ise mesela form2 de ise forms("form2")
for i=1 to metin kutusu sayısı
txtdeger=txtDeger & iif(txtdeger="",forms("form2").controls("metin" & i),"','" & forms("form2").controls("metin" & i))
next
DoCmd.RunSQL "INSERT INTO tablo2 (adı,soyadı,tc) VALUES ('" & txtstring & "')"
20/01/2019, 16:44

zaferlacin

olmadı hocam ya
sorgu değerleri ile hedef alanlarının sayısı aynı değil
hatası yada
syntx hatası veriyor
ya da
beceremedim
teşekkür ederim
20/01/2019, 21:30

berduş

Zafer bey 9. Mesajdaki kodu kendimde denedigimde hata vermedi
 Noktalama işaretlerini iyice kontrol edip tekrar dener misiniz
Private Sub Komut62_Click() 
Dim kutu As Control
Dim txtDeger As String
txtDeger = ""
For Each kutu In Me   
If kutu.Tag = "ekle" Then txtDeger = txtDeger & IIf(txtDeger = "", kutu, "','" & kutu)
Next
DoCmd.RunSQL "INSERT INTO tablo2 (adı,soyadı,tc) VALUES ('" & txtDeger & "')"
End Sub
21/01/2019, 00:56

zaferlacin

doğrudur çalıştı
kodları tekrar kontrol ettim 
aynı nerede hata yaptım anlamadım

ama çalışıyor teşekkür ederim Haliliyas hocam sizden kaçmayacağını biliyordum
1 2