- Katılım
- 14 Ocak 2005
- Mesajlar
- 792
- Excel Vers. ve Dili
- Ofis 2010 2016
- Altın Üyelik Bitiş Tarihi
- 13/03/2022
Bu günlerde kendi bilgisayarımda ofice 2010 32 bit yüklü. İşyerinde bazı bilgisayarlarda 64 bit yüklü kodlarımı çalıştırırken diğer makinelerde hata veriyor.
tam olarak ne fark vardır ve bu hataları nasıl düzeltirim genel itibari ile.
2- sql den veri çekip raporlarımı yaptığım programlarım vardı. Bu SQL den veri çekerken
RST.RecordCount Step 1
Burada type mismatch hatası veriyor internetten baktığım kadarıyla 64 bitten kaynaklanan bir hata olduğunu gördüm ama nasıl yapacağımı bilmedim.
ADO ile 64 bitten bağlanırken farklı işler mi yapmak gerekiyor.
Bilen arkadaşlardan rica etsem.
Saygılarımla.
tam olarak ne fark vardır ve bu hataları nasıl düzeltirim genel itibari ile.
2- sql den veri çekip raporlarımı yaptığım programlarım vardı. Bu SQL den veri çekerken
Kod:
Public SQLCON As New ADODB.Connection
Public tRid
Kod:
Bağlantı için
Public Sub Main()
Dim IP As String
Dim SERVER As String
Dim DATA As String
Dim USER As String
Dim PASSWORD As String
IP = Sheets("parametreler").TxtIp.Text
SERVER = Sheets("parametreler").TxtServer.Text
DATA = Sheets("parametreler").TxtData.Text
USER = Sheets("parametreler").TxtUser.Text
PASSWORD = Sheets("parametreler").TxtPassword.Text
SQLCON.ConnectionTimeout = 120 ' Time out for the connection
SQLCON.Provider = "sqloledb" ' OLEDB Providers
SQLCON.Properties("Network Address").Value = IP ' set the ip address of your sql server"
SQLCON.CommandTimeout = 30 ' set timeout for 3 minutes
SQLCON.Properties("Data Source").Value = SERVER
SQLCON.Properties("Initial Catalog").Value = DATA
SQLCON.Properties("User ID").Value = USER
SQLCON.Properties("Password").Value = PASSWORD
SQLCON.CursorLocation = adUseClient
End Sub
Kod:
'fatura bilgilerini fiş nodan arar bulur getirir
Range("A1").Value = "xxxxxx 19/05/2010"
Dim FISNO As String
Dim FISYIL As String
Dim FATNO As String
Dim MLZ_KOD As String
Dim SQLText As String
Dim i As Integer
Dim RST As New ADODB.Recordset
Call Main
DoEvents
SQLCON.Open
MLZ_KOD = Range("C3")
If MLZ_KOD = "" Then Exit Sub
SQLText = "SELECT eeeDOS_TAR,EEEDOS_ISL_DEP,EEEDOS_NUM, EEEDOS_GAR,EEEDOS_FOL,EEEDOS_ONUM, EEEDOS_MKOD, EEEDOS_ACK, EEEDOS_ODE_MIK, EEEDOS_NTLL,EEEDOS_GZAM FROM EEEDOS " & vbCrLf
SQLText = SQLText & "where EEEDOSONUM ='" + MLZ_KOD + "' AND " & vbCrLf
SQLText = SQLText & "EEEDOSTAR between '2012-07-15' and '2012-07-22' AND " & vbCrLf
SQLText = SQLText & " EEEDOSODMIK <> '0' " & vbCrLf
SQLText = SQLText & "ORDER BY EEEDOSTAR " & vbCrLf
Set RST.DataSource = SQLCON.Execute(SQLText)
Range("B6:J6").Select
Selection.ClearContents
Range("A10:J280").ClearContents
' fiş no olup olmadığı kontrol ediliyor.
Dim sayyy As String
sayyy = RST.RecordCount
If RST.RecordCount = 0 Then
MsgBox ("Fiş no yok. Lüfen yeni fiş no giriniz.")
Range("C3").Select
RST.Close
SQLCON.Close
Exit Sub
Else
'fiş no varsa buradan devam ediyor.
Do Until RST.EOF
For i = 1 To [B][U]RST.RecordCount Step 1[/U][/B]
Cells(i + 8, 2) = RST.Fields(0)
Cells(i + 8, 3) = RST.Fields(1)
Cells(i + 8, 4) = RST.Fields(2)
Cells(i + 8, 5) = RST.Fields(3)
Cells(i + 8, 6) = RST.Fields(4)
Cells(i + 8, 7) = RST.Fields(5)
Cells(i + 8, 8) = RST.Fields(6)
Cells(i + 8, 9) = RST.Fields(7)
Cells(i + 8, 10) = RST.Fields(8)
Cells(i + 8, 11) = RST.Fields(9)
Cells(i + 8, 12) = RST.Fields(10)
'Label1.Caption = "% " & Round(i / RST.RecordCount * 100, 0)
RST.MoveNext
Next i
Loop
RST.Close
SQLCON.Close
Range("C3").Select
End If
End Sub
RST.RecordCount Step 1
Burada type mismatch hatası veriyor internetten baktığım kadarıyla 64 bitten kaynaklanan bir hata olduğunu gördüm ama nasıl yapacağımı bilmedim.
ADO ile 64 bitten bağlanırken farklı işler mi yapmak gerekiyor.
Bilen arkadaşlardan rica etsem.
Saygılarımla.