- Katılım
- 21 Eylül 2006
- Mesajlar
- 14
- Excel Vers. ve Dili
- xp türkçe
hata ile ilgili mesajları araştırdım ancak soruma cevap bulamadım öncelikle bunu belirteyim; Şimdide sorunumu dile getireyim. Özetle bir .xla dosyası yaptım ve Excel'ime bunu ekledim başka ekranlarda (UserForm) bağlantı ayarlarını yaptıktan sonra MSSQL'den veri çeken bir Public Function Yapmaya çalışıyorum fonksiyonum şu
/*
Public Function Get_CekiB_Values(ByVal CekiNo As Variant, ByVal FieldName As String) As Variant
*/
Bu fonksiyon MSSQL'de tanımlı olan bir tablo (başlık tablosu ile ilişkili olan) başlık tablosu ile ilişkili detay hareketlerin tutulduğu bir tablo (İrsaliye hareketlerinin tutulması gibi) fonksiyon ise verilen anahtar değerine göre istenilen sütunun değerlerini veri tabanında o harekete ait kayıt sayısı kadar excel'de aktif range'ten alt satırlara doğru yazmasını sağlıyor. ancak ilk satırda fonksiyona değeri yükledikten sonra (ilk satıra ait sütun değeri) alt satırlara sadece formülsüz o sütuna ait diğer satır değerlerini yazmaya çalıştığım zaman başlıkta belirttiğim hatayı alıyorum...
Yardımlarınız için şimdiden teşekkürler...
kod örneği
'**************************************
Public Function Get_CekiB_Values(ByVal CekiNo As Variant, ByVal FieldName As String) As Variant
Dim VogueConn As ADODB.Connection
Dim CekiBRst As ADODB.Recordset
Dim strSQL As String
Dim CekiBSatirN As Integer
On Error GoTo cekibHata
LoadGlobalStr
strSQL = "select " & FieldName & " from CEKIB where CEKINO=" & CekiNo
Set VogueConn = New ADODB.Connection
With VogueConn
.CursorLocation = adUseClient
.Open strADOConString
Set CekiBRst = .Execute(strSQL)
End With
CekiBRst.MoveFirst
Get_CekiB_Values = CekiBRst(FieldName)
CekiBSatirN = ActiveCell.Row
While Not CekiBRst.EOF
ActiveSheet.Cells(CekiBSatirN + 1, ActiveCell.Column).Select
With Selection
.NumberFormat = "General"
.HorizontalAlignment = xlCenter: .VerticalAlignment = xlCenter: .WrapText = False: .Orientation = 0: .AddIndent = False
.IndentLevel = 0: .ShrinkToFit = False: .ReadingOrder = xlContext: .MergeCells = True
End With
'Hatayı bu satırda veriyor.....
ActiveSheet.Cells(CekiBSatirN + 1, ActiveCell.Column) = CekiBRst(FieldName)
CekiBSatirN = CekiBSatirN + 1
CekiBRst.MoveNext
Wend
CekiBRst.Close
VogueConn.Close
Set CekiBRst = Nothing
Set VogueConn = Nothing
cekibHata:
MsgBox (Err.Description)
Exit Function
End Function
'********************************************
/*
Public Function Get_CekiB_Values(ByVal CekiNo As Variant, ByVal FieldName As String) As Variant
*/
Bu fonksiyon MSSQL'de tanımlı olan bir tablo (başlık tablosu ile ilişkili olan) başlık tablosu ile ilişkili detay hareketlerin tutulduğu bir tablo (İrsaliye hareketlerinin tutulması gibi) fonksiyon ise verilen anahtar değerine göre istenilen sütunun değerlerini veri tabanında o harekete ait kayıt sayısı kadar excel'de aktif range'ten alt satırlara doğru yazmasını sağlıyor. ancak ilk satırda fonksiyona değeri yükledikten sonra (ilk satıra ait sütun değeri) alt satırlara sadece formülsüz o sütuna ait diğer satır değerlerini yazmaya çalıştığım zaman başlıkta belirttiğim hatayı alıyorum...
Yardımlarınız için şimdiden teşekkürler...
kod örneği
'**************************************
Public Function Get_CekiB_Values(ByVal CekiNo As Variant, ByVal FieldName As String) As Variant
Dim VogueConn As ADODB.Connection
Dim CekiBRst As ADODB.Recordset
Dim strSQL As String
Dim CekiBSatirN As Integer
On Error GoTo cekibHata
LoadGlobalStr
strSQL = "select " & FieldName & " from CEKIB where CEKINO=" & CekiNo
Set VogueConn = New ADODB.Connection
With VogueConn
.CursorLocation = adUseClient
.Open strADOConString
Set CekiBRst = .Execute(strSQL)
End With
CekiBRst.MoveFirst
Get_CekiB_Values = CekiBRst(FieldName)
CekiBSatirN = ActiveCell.Row
While Not CekiBRst.EOF
ActiveSheet.Cells(CekiBSatirN + 1, ActiveCell.Column).Select
With Selection
.NumberFormat = "General"
.HorizontalAlignment = xlCenter: .VerticalAlignment = xlCenter: .WrapText = False: .Orientation = 0: .AddIndent = False
.IndentLevel = 0: .ShrinkToFit = False: .ReadingOrder = xlContext: .MergeCells = True
End With
'Hatayı bu satırda veriyor.....
ActiveSheet.Cells(CekiBSatirN + 1, ActiveCell.Column) = CekiBRst(FieldName)
CekiBSatirN = CekiBSatirN + 1
CekiBRst.MoveNext
Wend
CekiBRst.Close
VogueConn.Close
Set CekiBRst = Nothing
Set VogueConn = Nothing
cekibHata:
MsgBox (Err.Description)
Exit Function
End Function
'********************************************