解讀將文本文件轉換為ACCESS數據庫的方法_Access數據庫教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:揭秘十萬條Access數據表分頁的解決方法
      后臺數據庫用是Access,客戶用了一年后說打開界面非常慢,查看了數據庫后發現數據表中的記錄已有五萬多條,自己試過將記錄復制到10 萬條,打開界面非常慢,翻頁也是同樣的問題,我采用的方

      本文向你介紹如何不用借助Access,直接在程序中創建一個數據庫,然后從標準的ASCII文本文件中讀取數據到數據庫中。原文是微軟知識庫中的一篇文章,但當時是針對VB3寫的,所以其中的代碼有點過時。例如現在DAO中已沒有Table對象,代之以Recordset對象。下面是修改后的代碼,在VB6中調試通過。

      首先在工程中添加對Microsoft DAO 3.51 Library引用。

      在窗體中添加三個命令按鈕和兩個MSFlexGrid.

      按照下表設置和控件的屬性:

      控件 屬性 值

      --------------------------------------------------------------------

      Command1 Caption "建立文本文件并顯示在網格中"

      Command2 Caption "傳輸入數據并新建一個數據庫"

      Command3 Caption "顯示新數據庫中的數據"

      Grid1 Cols 5

      Grid1 Rows 35

      Grid2 Cols 5

      Grid2 Rows 35

      將下面的代碼添加到窗體的聲明部分

      Dim nums(30) As Long

      Dim names(30) As String * 20

      Dim addresses(30) As String * 25

      Dim ss_nums(30) As String * 12

      Const DB_LONG = 4

      Const DB_TEXT = 10

      Const DB_LANG_GENERAL = ";LANGID=0x0809;CP=1252;COUNTRY=0"

      將下面的代碼添加到窗體的Load事件中

      Sub Form_Load ()

      Show

      grid1.ColWidth(1) = 1000 'For Emp ID

      grid1.ColWidth(2) = 2000 'For Emp Name

      grid1.ColWidth(3) = 3000 'For Emp Addr

      grid1.ColWidth(4) = 2000 'For Emp SSN

      grid1.Col = 1

      grid1.Row = 0

      grid1.Text = "Emp ID" 'Header for Emp ID from text file

      grid1.Col = 2

      grid1.Row = 0

      grid1.Text = "Emp Name" 'Header for Emp Name from text file

      grid1.Col = 3

      grid1.Row = 0

      grid1.Text = "Emp Addr" 'Header for Emp Addr from text file

      grid1.Col = 4

      grid1.Row = 0

      grid1.Text = "Emp SSN" 'Header for Emp SSN from text file

      grid2.ColWidth(1) = 1000 'For Emp ID

      grid2.ColWidth(2) = 2000 'For Emp Name

      grid2.ColWidth(3) = 3000 'For Emp Addr

      grid2.ColWidth(4) = 2000 'For Emp SSN

      grid2.Col = 1

      grid2.Row = 0

      grid2.Text = "Employee ID" 'Header for Emp ID from DB

      grid2.Col = 2

      grid2.Row = 0

      grid2.Text = "Employee Name" 'Header for Emp Name from DB

      grid2.Col = 3

      grid2.Row = 0

      grid2.Text = "Employee Addr" 'Header for Emp ID from DB

      grid2.Col = 4

      grid2.Row = 0

      grid2.Text = "Employee SSN" 'Header for Emp Name from DB

      End Sub

      在Command1_Click事件中加入下面的代碼

      Sub Command1_Click ()

      For i% = 1 To 30

      nums(i%) = i%

      names(i%) = "John Doe # " Str$(i%)

      addresses(i%) = Str$(i%) " Mocking Bird Lane"

      If i% < 9 Then

      '* Enter the following four lines as one, single line:

      ss_nums(i%) = Trim$(Str$(i%) Trim$(Str$(i%))

      Trim$(Str$(i%)) "-" Trim$(Str$(i% 1))

      Trim$(Str$(i% 1)) "-" Trim$(Str$(i%))

      Trim$(Str$(i%)) Trim$(Str$(i%)) Trim$(Str$(i%)))

      Else

      '* Enter the following two lines as one, single line:

      ss_nums(i%) = Trim$(Trim$(Str$(999)) "-" Trim$(Str$(88))

      "-" Trim$(Str$(7777)))

      End If

      Next i%

      Open "Testdata.DAT" For Output As #1

      For j% = 1 To 30

      Print #1, nums(j%)

      Print #1, names(j%)

      Print #1, addresses(j%)

      Print #1, ss_nums(j%)

      Next j%

      Close #1

      For i% = 1 To 30 'Display results from text file

      grid1.Col = 1

      grid1.Row = i%

      grid1.Text = nums(i%) 'Load Emp IDs

      grid1.Col = 2

      grid1.Row = i%

      grid1.Text = names(i%) 'Load Emp Names

      grid1.Col = 3

      grid1.Row = i%

      grid1.Text = addresses(i%) 'Load Emp Addrs

      grid1.Col = 4

      grid1.Row = i%

      grid1.Text = ss_nums(i%) 'Load Emp SSNs

      Next i%

      End Sub

      在Command2_Click事件中加入下面的代碼

      Sub Command2_Click ()

      Dim newdb As Database

      Dim newtb As Table

      Dim newtd As New tabledef

      Dim newidx As New Index

      Dim field1 As New field 'For Emp nums

       

      Dim field2 As New field 'For Emp names

      Dim field3 As New field 'For Emp addresses

      Dim field4 As New field 'For Emp ss_nums

      screen.MousePointer = 11 'Display the time to build

      Set newdb = CreateDatabase("NEWDB.MDB", DB_LANG_GENERAL)

      newtd.Name = "Emp_Table" '* New table name

      field1.Name = "Emp_ID" '* Holds Employee ID nums()

      field1.Type = DB_LONG

      newtd.Fields.Append field1

      field2.Name = "Emp_Name" '* Holds Emp names()

      field2.Type = DB_TEXT

      field2.Size = 20

      newtd.Fields.Append field2

      field3.Name = "Emp_Addr" '* Holds Employee addr()

      field3.Type = DB_TEXT

      field3.Size = 25

      newtd.Fields.Append field3

      field4.Name = "Emp_SSN" '* Holds emp ss_nums()

      field4.Type = DB_TEXT

      field4.Size = 12

      newtd.Fields.Append field4

      newidx.Name = "Emp_ID_IDX" '* You have to have an index

      newidx.Fields = "Emp_ID"

      newidx.Primary = True

      newtd.Indexes.Append newidx

      newdb.TableDefs.Append newtd

      Set newtb = newdb.OpenTable("Emp_Table")

      Open "Testdata.dat" For Input As #1

      BeginTrans

      Do While Not (EOF(1))

      newtb.AddNew

      Line Input #1, tmp1$ 'Retrieve empl_id

      Line Input #1, tmp2$ 'Retrieve empl_name

      Line Input #1, tmp3$ 'Re

      分享:解析在Access中模擬sql server存儲過程翻頁
      sql server中翻頁存儲過程: Create PROC blog_GetPagedPosts ( @PageIndex int, @PageSize int, @BlogID int=0, @PostType int=-1, @CategoryID int=-1, @Hiding

      來源:模板無憂//所屬分類:Access數據庫教程/更新時間:2009-08-26
      相關Access數據庫教程