Merhabalar
Office 2016 sürümünü kullanıyorum. Geliştirdiğim bir uygulamada *.accdb veritabanına kayıt yapmak istiyorum. OBDC sürücüm : ACEODBC.
Aşağıdaki kodlarla bir bağlantı açıp userformdaki verileri veritabanına kaydetmek istedim, veri tabanına bağlantı yapıyor ama kayıt ettiği satırlara gelince tür uyuşmazlığı hatası alıyorum. Veri tabanımdaki sütunların veri türleri şu şekilde : Veri Türleri
Bu veri türlerine göre aşağıdaki kodu inceleyebilir misiniz? Kayıt ederken hangi türde hata yaptığımı bulamadım. Aşağıdaki gibi haliyle kodu çalıştırdığımda.
Bu satırda tür uyumazlığı hatası alıyorum.
Kodların tümü
Office 2016 sürümünü kullanıyorum. Geliştirdiğim bir uygulamada *.accdb veritabanına kayıt yapmak istiyorum. OBDC sürücüm : ACEODBC.
Aşağıdaki kodlarla bir bağlantı açıp userformdaki verileri veritabanına kaydetmek istedim, veri tabanına bağlantı yapıyor ama kayıt ettiği satırlara gelince tür uyuşmazlığı hatası alıyorum. Veri tabanımdaki sütunların veri türleri şu şekilde : Veri Türleri
Bu veri türlerine göre aşağıdaki kodu inceleyebilir misiniz? Kayıt ederken hangi türde hata yaptığımı bulamadım. Aşağıdaki gibi haliyle kodu çalıştırdığımda.
Bu satırda tür uyumazlığı hatası alıyorum.
cmd.Parameters.Append cmd.CreateParameter("p2", 130, 1, , TxtKanalAdi.Text) ' adVarVChar
Kodların tümü
Kod:
Sub VeriTabaninaKaydet()
Dim dosyaYolu As String
Dim databaseAdi As String
Dim databaseSifresi As String
Dim connStr As String
Dim cnn As Object
Dim cmd As Object
Dim sql As String
' Dosya yolu, veritabanı adı ve şifreyi belirle
dosyaYolu = ThisWorkbook.Sheets("sabitveri").Range("E2").value
databaseAdi = ThisWorkbook.Sheets("sabitveri").Range("F2").value
databaseSifresi = ThisWorkbook.Sheets("sabitveri").Range("G2").value
' Bağlantı dizesini oluştur
connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & dosyaYolu & "\" & databaseAdi & ".accdb;" & _
"Jet OLEDB:Database Password=" & databaseSifresi & ";" & _
"Persist Security Info=False;"
' Bağlantıyı aç
Set cnn = CreateObject("ADODB.Connection")
cnn.Open connStr
' KanalListesi tablosuna veri ekle
Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = cnn
cmd.CommandType = 1 ' adCmdText
' SQL sorgusunu oluştur
sql = "INSERT INTO KanalListesi (KayitTarihi, KanalAdi, Kategori, EkleyenAPICode) VALUES (?, ?, ?, ?)"
' Parametre değerlerini ayarla
cmd.Parameters.Append cmd.CreateParameter("p1", 135, 1, , Now) ' adDBDate yerine 133
cmd.Parameters.Append cmd.CreateParameter("p2", 130, 1, , TxtKanalAdi.Text) ' adVarVChar
cmd.Parameters.Append cmd.CreateParameter("p3", 130, 1, , CmbKat.Text) ' adVarVChar
cmd.Parameters.Append cmd.CreateParameter("p4", 130, 1, , LblAPICode.Caption) ' adVarVChar
' SQL sorgusunu ve parametre değerlerini kullanarak veriyi ekleyin
cmd.CommandText = sql
cmd.Execute
' Bağlantıyı kapat
cnn.Close
' Başarı mesajı göster
MsgBox "Veri başarıyla kaydedildi!", vbInformation
End Sub
Son düzenleme: