Ado Recordset Update Null Value

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,043
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar,
Ado Recorset ile dolu olan bir alanı boş olarak güncellemel istediğimde;

eğer güncellenecek olan boş bir değer olduğunda hata olduğunda hata veriyor.

Dolu bir değeri boş olarak güncellemek için nasıl bir çözüm yolu öneririsiniz
teşekkürler,
iyi Akşamlar.

Kod:
Public Sub updateSQL(table As String, param As String, arr As Variant)
Dim RST As Object
Dim deger As Variant
Dim SQL As String
Dim i As Integer
Dim j As Integer

''On Error Resume Next

Set RST = VBA.CreateObject("ADODB.Recordset")

SQL = "SELECT * From [" & table & "$" & param & "]"
                          
RST.Open SQL, con, 1, 3

    For i = LBound(arr) To UBound(arr)
        If IsEmpty(arr(i)) Then
            deger = ""
        Else
            deger = arr(i)
        End If
    
        RST(i) = deger
        
    Next i

RST.Update

RST.Close

End Sub
 
Katılım
2 Temmuz 2014
Mesajlar
135
Excel Vers. ve Dili
2021 Türkçe, 64bit
eğer güncellenecek olan boş bir değer olduğunda hata olduğunda hata veriyor.
Ilk olarak bu cümlenizi anlamadım, tam olarak ne demek istediniz?
2. olarak neden update sorgusu kullanmıyorsunuz?
Tek tek kayıtlar arasında dolaşmak yerine
"Update [" & table & " set alanadi='' $" & param & "]" benzeri bir kod daha pratik olmaz mi?
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,043
Excel Vers. ve Dili
Office 2013 İngilizce
Ilk olarak bu cümlenizi anlamadım, tam olarak ne demek istediniz?
2. olarak neden update sorgusu kullanmıyorsunuz?
Tek tek kayıtlar arasında dolaşmak yerine
"Update [" & table & " set alanadi='' $" & param & "]" benzeri bir kod daha pratik olmaz mi?
Halil Hocam selamlar,
Öncelikle param "A3:C3" bu şekilde bir hücre aralığı..
Bu aralık için de A3 hücresinde "xyz" şeklinde bir metin olsun
A3 hücresinde "" boş bir değer olması için RST(0) = "" nasıl yazılmalıdır?
teşekkürler, iyi akşamlar.
 
Katılım
2 Temmuz 2014
Mesajlar
135
Excel Vers. ve Dili
2021 Türkçe, 64bit
updateSQL(table As String, param As String, arr As Variant) burada gönderdiğiniz ifadeye bir ornek verebilir misiniz?
Mesela arr() dizisinin değerleri ne olacak?
Param değerleri ne olacak?

2 - alan türleri ne?
Bildiğim kadarıyla metinler için "" alabilirsiniz ama sayisal yada tarih değerleri için null değer atanmalı. Yani rs(0) metinse rs(0)="" kullanabilirsiniz ama sayısalsa rs(0)=vbnull benzeri bir kod kuĺlanilmali not: vbnull kismindan tam emin degilim sadece null benzeri birşey de olabilir.

3 - bu kod sadece tek bir kaydın değerini mi degistirecek?
Haricî bir sitey örnek dosya ekleyip onun üzerinden açıklama yapabilirseniz sorunun anlaşılıp çözülmesi daha hızlı olur.
Iyi çalışmalar
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,043
Excel Vers. ve Dili
Office 2013 İngilizce
updateSQL(table As String, param As String, arr As Variant) burada gönderdiğiniz ifadeye bir ornek verebilir misiniz?
Mesela arr() dizisinin değerleri ne olacak?
Param değerleri ne olacak?

2 - alan türleri ne?
Bildiğim kadarıyla metinler için "" alabilirsiniz ama sayisal yada tarih değerleri için null değer atanmalı. Yani rs(0) metinse rs(0)="" kullanabilirsiniz ama sayısalsa rs(0)=vbnull benzeri bir kod kuĺlanilmali not: vbnull kismindan tam emin degilim sadece null benzeri birşey de olabilir.

3 - bu kod sadece tek bir kaydın değerini mi degistirecek?
Haricî bir sitey örnek dosya ekleyip onun üzerinden açıklama yapabilirseniz sorunun anlaşılıp çözülmesi daha hızlı olur.
Iyi çalışmalar
updateSQL(table As String, param As String, arr As Variant) burada gönderdiğiniz ifadeye bir ornek verebilir misiniz?
Mesela arr() dizisinin değerleri ne olacak?
Param değerleri ne olacak?

2 - alan türleri ne?
Bildiğim kadarıyla metinler için "" alabilirsiniz ama sayisal yada tarih değerleri için null değer atanmalı. Yani rs(0) metinse rs(0)="" kullanabilirsiniz ama sayısalsa rs(0)=vbnull benzeri bir kod kuĺlanilmali not: vbnull kismindan tam emin degilim sadece null benzeri birşey de olabilir.

3 - bu kod sadece tek bir kaydın değerini mi degistirecek?
Haricî bir sitey örnek dosya ekleyip onun üzerinden açıklama yapabilirseniz sorunun anlaşılıp çözülmesi daha hızlı olur.
Iyi çalışmalar
Merhaba Hocam
Kodlar ekli dosyada çalışıyor, yalnız başka bir dosyada hata vermişti,

sebebini bir türlü bulamamıştım, bu konuda önerilere açığım.

iyi Çalışmalar.
 

Ekli dosyalar

Katılım
2 Temmuz 2014
Mesajlar
135
Excel Vers. ve Dili
2021 Türkçe, 64bit
Yalniz site üyeligim bulunmadığından dosyayı inceleme imkanım yok.
O nedenle harici siteye yüklemenizi istemiştim
Bir de çalışmayan dosyayı ekleseydiniz keşke, sorunu inceleme imkanımız olurdu.
 
Katılım
2 Temmuz 2014
Mesajlar
135
Excel Vers. ve Dili
2021 Türkçe, 64bit
maalesef eklediğiniz dosyayı inceleyerek bir çözüm üretmem mümkün değil
sayısal/metin her alana null değer atadım, yeni sayfa ekleyip oradan denedim yine de hata vermedi
hatalı dosyada hatayı nerede veriyor?
recordseti açarken mi, veriyi güncellerken mi?
neden hata veren dosyayı eklemiyorsunuz?
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,043
Excel Vers. ve Dili
Office 2013 İngilizce
maalesef eklediğiniz dosyayı inceleyerek bir çözüm üretmem mümkün değil
sayısal/metin her alana null değer atadım, yeni sayfa ekleyip oradan denedim yine de hata vermedi
hatalı dosyada hatayı nerede veriyor?
recordseti açarken mi, veriyi güncellerken mi?
neden hata veren dosyayı eklemiyorsunuz?
Hocam o dosya biraz karışık, yalnız boş olanlara Null değeri atayarak denedim, şu an için orada da bir hata vermedi.
her şey için teşekkürler
 
Üst