• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Soru ADO İle Kayıt Yaparken Metin Olarak Kaydediyor.

bulentkars

Altın Üye
Katılım
5 Ağustos 2005
Mesajlar
674
Excel Vers. ve Dili
2003 TR
Arkadaşlar Merhaba,

ADO yöntemi ile dışarıdaki çalışma kitabına kayıt yapıyorum, ancak bazı sütünları metin olarak kaydediyor, ekte resim olarak ta gösterdim. Kodun içerisinde de belirttim, aşağıdaki 3 sutun başlığının metin olarak değil sayı olarak kaydetmesini istiyorum, yardımcı olabilirseniz sevinirim. Şimdiden Teşekkürler

Alan4 = Range("B6").Value ' BU ALAN
Alan8 = Range("B10").Value ' BU ALAN
Alan10 = Range("B12").Value ' BU ALAN


Sub Kaydet()

Dim adoCN As Object, TargetFile As String, strSQL As String, objRS As Object, i As Integer, tStart As Double
Const adOpenStatic = 3
Const adUseClient = 3
Const adLockBatchOptimistic = 4

DosyaAdi = Range("B4").Value & ".xlsb"


Alan1 = Range("B3").Value
Alan2 = Range("B4").Value
Alan3 = Range("B5").Value
Alan4 = Range("B6").Value ' BU ALAN
Alan5 = Range("B7").Value
Alan6 = Range("B8").Value
Alan7 = Range("B9").Value
Alan8 = Range("B10").Value ' BU ALAN
Alan9 = Range("B11").Value
Alan10 = Range("B12").Value ' BU ALAN


tStart = Timer

Set adoCN = CreateObject("ADODB.Connection")


TargetFile = "Z:\Şahin\Database\" & DosyaAdi


adoCN.Provider = "Microsoft.ACE.OLEDB.12.0"
adoCN.Properties("Data Source") = TargetFile
adoCN.Properties("Extended Properties") = "Excel 12.0; HDR=No"
adoCN.Open

Set objRS = CreateObject("ADODB.Recordset")

strSQL = "Select Count(*) From [Data$] Where F1 Is Not Null"

With objRS
.CursorType = adOpenStatic
.CursorLocation = adUseClient
.LockType = adLockBatchOptimistic
.ActiveConnection = adoCN
.Source = strSQL
.Open
End With

i = objRS(0)

strSQL = "Insert Into [Data$" & "A" & i & ":M" & i & "] (F1, F2, F3, F4, F5, F6, F7, F8, F9, F10) " & _
"Values " & _
"('" & Alan1 & "','" & Alan2 & "','" & Alan3 & " ','" & Alan4 & "'," & _
"'" & Alan5 & "','" & Alan6 & "','" & Alan7 & " ','" & Alan8 & "'," & _
"'" & Alan9 & "','" & Alan10 & "')"


adoCN.Execute strSQL

MsgBox "Veri aktarımı tamamlanmıştır." & Chr(10) & Chr(10) & _
"İşlem süresi ; " & Format(Timer - tStart, "0.00") & " Saniye", vbInformation, Application.UserName

adoCN.Close
Set adoCN = Nothing

End Sub
 

Ekli dosyalar

  • ado.JPG
    ado.JPG
    94 KB · Görüntüleme: 8
Bahsettiğiniz alanlar için sorgu satırında başındaki ve sonundaki TEK TIRNAK işaretlerini silerek deneyiniz.

Düzeltmeniz gereken satır...

strSQL = "Insert Into [Data$" & "A" & i & ":M" & i & "] (F1, F2, F3, F4, F5, F6, F7, F8, F9, F10) " & _
"Values " & _
"('" & Alan1 & "','" & Alan2 & "','" & Alan3 & " ','" & Alan4 & "'," & _
"'" & Alan5 & "','" & Alan6 & "','" & Alan7 & " ','" & Alan8 & "'," & _
"'" & Alan9 & "','" & Alan10 & "')"
 
Korhan Bey,

Tek satır Haline aldım TEK TIRNAK işaretlerini kaldırıdım,
"(" & Alan1 & "," & Alan2 & "," & Alan3 & "," & Alan4 & "," & Alan5 & "," & Alan6 & "," & Alan7 & "," & Alan8 & "," & Alan9 & "," & Alan10 & ")"

bu satırda hata veriyor
adoCN.Execute strSQL
 

Ekli dosyalar

  • hataaa.JPG
    hataaa.JPG
    24.3 KB · Görüntüleme: 5
Korhan Bey,
Tırnakları kaldırıyorum olmuyor, aklıma farklı bir çözüm geldi mümkün mü acaba?
kayıt işlemini yaptıktan sonra "D,H,J" sutunlarını sayı olarak dönüştürebilir miyiz?
kayıt işlemini yapacak sonra sayıya dönüştürüp dosyayı kapatacak. Mümkünse yardımcı olabilirseniz sevinirim
 
Benim deneme şansım şimdilik yok. Ama sanırım siz tüm tırnakları silmişsiniz. Sadece sayı olması gereken alanların tek tırnaklarını silip deneyiniz.

Belki önerdiğim yöntem kapalı dosyaya kayıt yapma işleminde çalışmıyor olabilir. Tecrübeli arkadaşlar destek verebilirler.
 
239766
Kapalı dosyanın sütun başlıklarının bir alt hücresinin formatını sayı olarak ayarlarsanız aşağı doğru aynı formatta devam eder.
 
Merhaba,

Tüm yolları denedim, sorunu buldum anacak çözemedim yardımcı olabilirseniz gerçekten çok sevinirim.


Kapalı dosyanın sütun başlıklarının bir alt hücresinin formatını sayı olarak ayarlarsanız aşağı doğru aynı formatta devam eder.
** Bir alt satır dolu ise oluyor, ancak boş ise olmuyor..
** Benim 20 adet dosyam var dosyalara sürekli kayıt yapıyorum, ve her ay temizliyorum..
Şunu yapabilirmiyiz, kayıt yaparken önce "sutunlarını sayı olarak çevirebilir miyiz..
 
Merhaba; kapalı dosya başlık altı formatlarını manuel ayarlamanız gerekli.
 

Ekli dosyalar

Geri
Üst