1

Konu: Excel Yardım

Arkadaşlar Hepinize Selam
Şimdi Benim Elimde karakter 15 olan bi TABLE alanı var bunu exel'e şu şekilde aktarıyorum

LOCAL i,j,TrendFunc,xlsheet,XLApp,tmpsheet
tmpsheet = GetObject('','excel.sheet')
XLApp = tmpsheet.application
XLApp.Visible = .t.
XLApp.WorkBooks.Add()
XLSheet = XLApp.ActiveSheet
XLSheet.Cells(1,1).Value = "STOK_KODU"
I=1
STOP=0
SELECT STOK
GO TOP
DO WHILE NOT EOF()
I=I+1
XLSheet.Cells(I,1).Value =STKRAP.SKOD
SKIP
ENDDO

fakat aktardığım zaman bu karakter 15 lik alan örnek 123456789+12 gibi bi şekilde yazıyo ve bunu düzeltemiyorum ve bir başka sorunumda "OLE error code 0x800ac472: Unknown COM status code."
bu şekilde bi mesaj alıyorum yardımlarınız için şimdiden teşekkürler

2

Re: Excel Yardım

Girilen değerin sayı değil karakter olduğunu belirtmek için
XLSheet.Cells(I,1).Value =" ' "+STKRAP.SKOD  && başına tek tırnak (') ekleyerek girmeyi deneyebilir misin.

Ole hatası konusunda excel de satır veya sütun yetmediğinde (taştığında) ben de aynı hatayı alıyorum. Kayıt sayısı sığmıyor olabilir mi ?

3

Re: Excel Yardım

Tamam bu Şekilde oluyo ama hiç birşey koymadan yapabilme şansımız var mı peki?


Diğer Problemim aslında Excel'de işlemi bitirmeden satırları genişletmek v.s işlemlerden olduğunu buldum ama bunu engelleyebilir miyiz yani işlem bittiğinde excel birden çıkamaz mı acaba ?

4

Re: Excel Yardım

Visual Fox Pro
Local oExcel

oExcel = Createobject("Excel.Application")
With oExcel
  .WorkBooks.Add
  * Database adinin tam yolu neyse onu yaz
  VFP2Excel(SYS(5)+CURDIR()+'data\mydatabase.dbc',;
    'select SKOD as STOK_KODU from STKRAP',;
    .ActiveWorkBook.ActiveSheet.Range('A1'))
 
  .ActiveWorkBook.ActiveSheet.UsedRange.Columns.AutoFit
  .Visible = .T.
Endwith
 
Function VFP2Excel
  Lparameters tcDataSource, tcSQL, toRange
  Local loConn As AdoDB.Connection, ;
    loRS As AdoDB.Recordset,;
    ix
  loConn = Createobject("Adodb.connection")
  loConn.ConnectionString = "Provider=VFPOLEDB;Data Source="+m.tcDataSource
  loConn.Open()
  loRS = loConn.Execute(m.tcSQL)
 
  For ix=1 To loRS.Fields.Count
    toRange.Offset(0,m.ix-1).Value = Proper(loRS.Fields(m.ix-1).Name)
    toRange.Offset(0,m.ix-1).Font.Bold = .T.
  Endfor
  toRange.Offset(1,0).CopyFromRecordSet( loRS )
  loRS.Close
  loConn.Close
Endfunc