EXCEL-->ACCESS |
尚未結案
|
shie
一般會員 發表:7 回覆:10 積分:3 註冊:2003-09-12 發送簡訊給我 |
|
terrychen
尊榮會員 發表:90 回覆:794 積分:501 註冊:2003-05-01 發送簡訊給我 |
您好:
下列是小弟由EXCEL轉入MSSQL的方式,參考看看
有沒有單引號,應該都可以,至於ACESS我便沒試過
procedure TTransin.SpeedButton2Click(Sender: TObject); Var SQLStr,Filename: String; xlsApp, WorkBook: Variant; i,j,k:integer; begin if OpenDialog1.Execute then begin Try Application.ProcessMessages; xlsApp:= CreateOleObject('Excel.Application'); WorkBook:= CreateOleobject('Excel.Sheet'); Except ShowMessage('請先安裝 Microsoft Excel 再執行本程式!'); WorkBook.Close; //關閉EXCEL xlsApp.Quit; //退出Excel Application xlsApp:=Unassigned; //free VARIANT Exit; End; WorkBook:= xlsApp.workBooks.Open(OpenDialog1.FileName); WorkBook.sheets[1].Select; Filename:= copy(ExtractFileName(OpenDialog1.FileName),1,3); SQLStr:= 'Select * from Hc200 where HcNo like ''' Filename '%' ''''; Hc200.Close; Hc200.SQL.Clear; Hc200.SQL.Add(SQLStr); Hc200.Open; j:= Hc200.RecordCount; Gauge1.MinValue:= 0; Gauge1.MaxValue:= j; Gauge1.Progress:= 0; k:= 0; for i := 1 to j 1 do begin if Trim(xlsApp.Cells[i,1]) <> '' then begin SQLStr:='UpDate Hc200 Set HBsAg = ''' Trim(xlsApp.Cells[i,2]) '''' ',' ' HBsAb = ''' Trim(xlsApp.Cells[i,3]) '''' ',' ' HBsAge = ''' Trim(xlsApp.Cells[i,4]) '''' ',' ' Ant = ''' Trim(xlsApp.Cells[i,5]) '''' ',' ' RPR = ''' Trim(xlsApp.Cells[i,6]) '''' ',' ' Typing = ''' Trim(xlsApp.Cells[i,7]) '''' ' where HcNo = ''' Trim(xlsApp.Cells[i,1]) ''''; Hc200.Close; Hc200.SQL.Clear; Hc200.SQL.Add(SQLStr); Hc200.ExecSQL; Gauge1.Progress:= i; inc(k); end; end; WorkBook.Close; //關閉EXCEL xlsApp.Quit; //退出Excel Application xlsApp:=Unassigned; //free VARIANT Gauge1.Progress:= 0; Showmessage('共轉入B肝資料' inttostr(k) '筆'); end; end;發表人 - Terrychen 於 2004/01/05 10:39:32 |
shie
一般會員 發表:7 回覆:10 積分:3 註冊:2003-09-12 發送簡訊給我 |
請問各位大大:
目前一直被煩中謝謝幫忙:EXCEL中的資料格式不同就會遺漏存入ACCESS中或是當在那兒例如:第一列[A1,2]:='1 第二列[A1,3]:=5 <===二個只少了單引號我存入ACCESS時就會發生上述的現象~~~使用各位大大的函數OpenXlsAsADO()不好意思
感謝了 感謝:我測試了一個小結果就是
第一列[A1,2]:='1
第二列[A1,3]:=5
把第一列[A1,2]:='1 內容值改為第一列[A1,2]:=1 (去掉單引號)就可以了
不知是不是資料內容是要相同呢?但實際上資料是會有不相同地方的可以決絕嗎`~
謝謝各位大大了~~
|
terrychen
尊榮會員 發表:90 回覆:794 積分:501 註冊:2003-05-01 發送簡訊給我 |
您好:
用上述的方法不行ㄇ,記得以前用時不管有沒有『'』都可以進去
若不行,用你的方法在進資料庫之前將『'』濾掉
Function TForm1.Flt_SP(Input: String): String; // 濾 ' var i:Integer; OutStr:String; begin OutStr:=''; for i := 1 to Length(Input) do begin if Input[i] <> '''' then OutStr:=OutStr Input[i]; end; Result:=OutStr; end;發表人 - Terrychen 於 2004/01/09 14:15:40 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |