2013-12-08 110 views
0

讓我先說,我不是程序員,所以我不熟悉Visual Basic for Access(VBA)。我理解查詢和宏,我可以自動執行數據庫事務,從A點開始可以讓我B。將備註字段導入到Microsoft Access表中

我期待從Microsoft Excel中保存CSV文件並將它們導入到Microsoft Access 2003中基礎。 CSV文件是我從其他公司收到的每日Feed。

非Microsoft程序員可以在Microsoft Access內部每天導入一次這些數據嗎?

我最大的問題是備註字段。看起來許多簡單的導入數據的方法(如鏈接表)會將備註字段截斷爲前255個字符。我需要把所有的數據。

任何提示,建議或測試過程將會有所幫助。

+0

在Access中,如果將字段的數據類型設置爲***文本***,那麼您被限制爲255個字符。如果您需要存儲超過255個字符,則必須將數據類型設置爲***備忘錄***。實際上,導入CSV文件會給您帶來問題。相反,您最好導入製表符分隔的文本文件。 VBA是完成工作的最好和最簡單的方法。 – Linger

+0

假設表已經創建了正確的數據類型,數據的導入仍會截斷爲備註字段的255個字符。 – Sun

回答

1

結賬this可能會給你你需要的東西。

+0

您的鏈接只是確認鏈接到Access中的Excel工作表,將任何備註字段截斷爲前255個字符。這並不能回答這個問題。 – Sun

0

你可以嘗試下面的代碼。將其粘貼到模塊中並進行必要的更改以適應您的需求。用你需要的字段和他們的類型來設計一個表格,並在下面引用它。使用將運行事件過程的命令按鈕創建窗體。調用你創建的模塊。

Public Sub ImportTextFile() 
' to use the ADODB.Recordset, be sure you have a reference set to ADO 
Dim rst As ADODB.Recordset 
Dim strFile As String 
Dim strInput As String 
Dim varSplit As Variant 
Dim intCount As Integer 


    Set rst = New ADODB.Recordset 
' CHANGE THE TABLE NAME HERE 
rst.Open "TblNameHere", CurrentProject.Connection, adOpenDynamic, adLockOptimistic 
' CHANGE THE TEXT FILE NAME AND LOCATION HERE 
strFile = "C:\Desktop\fullextract.txt" 

Open strFile For Input As #1 

Dim i As Integer 

Do Until EOF(1) 
    ' This counter is just to get to the applicable line before importing 
    intCount = intCount + 1 
    ' reads the text file line by line 
    Line Input #1, strInput 
    ' starts importing on the second line. Change the number to match which line you 
    ' want to start importing from 
    If intCount >= 2 Then 
     ' creates a single dimension array using the split function 
     varSplit = Split(strInput, ",", , vbTextCompare) 
     ' adds the record 
     With rst 
      .AddNew 
     ' change the range 0 To 254 to fit your needs. I was importing 254 fields. 
      For i = 0 To 254 
       .Fields(i) = varSplit(i) 
      Next i 
      .Update 
     End With 

    End If 
Loop 
' garbage collection 
Close #1 
rst.Close 
Set rst = Nothing 

End Sub 
相關問題