救郎喔--【急Help】:請熟SQL+OLE(object)的朋友幫忙一下!!~

2008091410:00

丫紫,工作上目前有一個問題一直無法解決,

問遍各個知名的相關討論區網站也都無解,

在此想試試地圖友們,有沒有人能幫我解決這個問題,

偶快起肖了,請大家盡量幫助丫紫,

教學相長,感恩啊!!~


如何用SQL的語法,使用ole操控excel的文字方塊?


丫紫我在ORACLE的DEVELOPER 2000開發,

需要透過OLE控制EXCEL,
去獲取EXCEL上的文字方塊(YA18),
並塞一個值V到文字方塊(YA18)裡,
但我試了多種方法都無法寫入...

我EXCEL使用錄取巨集, 查到VB的寫法如下:
-----------------------------------------------------------------
Sub Macro1()

ActiveSheet.Shapes("YA18").Select
Selection.Characters.Text = "v"
With Selection.Characters(Start:=1, Length:=1).Font
.Name = "MS Sans Serif"
.FontStyle = "標準"
.Size = 10
.Strikethrough = False
.SuperscXXXXXript = False
.SubscXXXXXript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
End Sub
-----------------------------------------------------------------

改用SQL的寫法如下:
=================================
PROCEDURE pp_excel_item(worksheet OLE2.OBJ_TYPE) IS
application OLE2.OBJ_TYPE;
workbooks OLE2.OBJ_TYPE;
workbook OLE2.OBJ_TYPE;
worksheets OLE2.OBJ_TYPE;
shapes OLE2.OBJ_TYPE;
args OLE2.LIST_TYPE;
v_cnt number;
begin
args := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(args,YA18); --丫紫試能不能直接讀取到文字方塊
--OLE2.ADD_ARG(args,53); X列
--OLE2.ADD_ARG(args,2); Y欄

shapes:= OLE2.GET_OBJ_PROPERTY(worksheet, shape, args);
OLE2.DESTROY_ARGLIST(args);
OLE2.SET_PROPERTY(shapes,Value,V);
Releasing obXXXXXject handle shapes.
OLE2.RELEASE_OBJ(shapes);
end;
=================================

經過偵測發現都會錯在這行:
shapes:= OLE2.GET_OBJ_PROPERTY(worksheet, shape, args);

但後來發現是因為無法得到寫入的真正位置,
OLE2.ADD_ARG(args,YA18);
因為我是寫成去讀取YA18, 而不是寫成(X,Y)欄位的位置,
但是因為YA18是個文字方塊, 而不是儲存格, 所以我無法寫成(X,Y),
因為造成讀取上的錯誤, 請問如何解決這個問題??