| 
	
 
The information in this article applies to:
 
- Microsoft Visual Basic programming system for Windows, version 3.0
 
 
 SUMMARY
 
The example in this article demonstrates how to build a Microsoft Access
database without having a database or database template already built. The
example uses a Btrieve for Windows database file to supply the data to be
placed into the newly created Microsoft Access database.
 
 MORE INFORMATION
 
NOTE: You will need to have a Btrieve for Windows database file
       already built to test this example. The Btrieve for Windows
      database file tested with this example can be sent upon request.
Steps to demonstrate the example
 
- Start Visual Basic or from the File menu, choose New Project (ALT, F, N)
   if Visual Basic is already running. Form1 is created by default.
 - Add three command buttons and two grid controls using GRID.VBX to Form1.
   Using the following table as a guide, set the properties of the controls
   you added in step 2.
    Control    Property   New Value
   ----------------------------------------------------------------------
   Command1   Caption    "Press to Load Btrieve File and Display in Grid"
   Command2   Caption    "Press to Transfer Data and Build New DB"
   Command3   Caption    "Press to Display Data from the New Database"
   Grid1      Cols       4
   Grid1      Rows       15
   Grid2      Cols       4
   Grid2      Rows       15
  - Review the following brief outline of the table from the Btrieve for
   Windows database:
    Table Name:     Big_Tab
   Field Names    Field Type      Field Size
   -----------------------------------------
   PrimaryKey     Long Integer
   MyMoney        Currency
   MyString       Text            154
   Index Names    Index Fields      Unique   Primary
   ---------------------------------------------------
   tabindex       +PrimaryKey       Yes      No
  - Add the following variables and constants to the (general) section of
   Form1:
   Dim PrimaryKeys(30) As Long
   Dim Money(30) As Currency
   Dim Strings(30) As String * 154
   Const DB_LONG = 4
   Const DB_TEXT = 10
   Const DB_CURRENCY = 5
   Const DB_LANG_GENERAL = ";LANGID=0x0809;CP=1252;COUNTRY=0"
  - Add the following code to the Form Load event procedure:
    Sub Form_Load ()
      Show
      grid1.ColWidth(1) = 1000      'For PK ID
      grid1.ColWidth(2) = 2000      'For Money
      grid1.ColWidth(3) = 5000      'For Story
      grid1.Col = 1
      grid1.Row = 0
      grid1.Text = "Primary Keys"   'Header for PK ID
      grid1.Col = 2
      grid1.Row = 0
      grid1.Text = "Money"          'Header for Money
      grid1.Col = 3
      grid1.Row = 0
      grid1.Text = "Big String"     'Header for Story
      grid2.ColWidth(1) = 1000      'For PK ID
      grid2.ColWidth(2) = 2000      'For Money
      grid2.ColWidth(3) = 5000      'For Story
      grid2.Col = 1
      grid2.Row = 0
      grid2.Text = "Prime's"        'Header for PK ID
      grid2.Col = 2
      grid2.Row = 0
      grid2.Text = "Your Money"     'Header for Money
      grid2.Col = 3
      grid2.Row = 0
      grid2.Text = "Your Story"     'Header for Story
   End Sub
 - Add the following code to the Command1 Click event procedure:
    Sub Command1_Click ()
      Dim db As Database
      Dim conn$
      Dim dt As Table
      conn$ = "Btrieve;"
      ' Enter the following Set as one, single line:
      Set db = OpenDatabase("C:\articles\btrvwin\file.ddf", False, False,
         conn$)
      Set dt = db.OpenTable("Big_Tab")
      ' Counter for loading the grid
      For i% = 1 To 10       'Grab the first ten for a test
         grid1.Col = 1
         grid1.Row = i%
         grid1.Text = dt(0)       'Load the grid
         PrimaryKeys(i%) = dt(0)  'Load the temporary array
         grid1.Col = 2
         grid1.Row = i%
         grid1.Text = dt(1)       'Load the grid
         Money(i%) = dt(1)        'Load the temporary array
         grid1.Col = 3
         grid1.Row = i%
         grid1.Text = dt(2)       'Load the grid
         Strings(i%) = dt(2)      'Load the temporary array
         dt.MoveNext
      Next i%
   End Sub
 - Add the following code to the Command2 Click event procedure:
    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 PK IDs
      Dim field2 As New field     'For Money
      Dim field3 As New field     'For Story's
      screen.MousePointer = 11    'To display the time to build
      Set newdb = CreateDatabase("NEWBTWDB.MDB", DB_LANG_GENERAL)
      newtd.Name = "Money_Table"  '* New table name
      field1.Name = "PK_ID"       '* Holds PK ID
      field1.Type = DB_LONG
      newtd.Fields.Append field1
      field2.Name = "Money"       '* Holds Money
      field2.Type = DB_CURRENCY
      newtd.Fields.Append field2
      field3.Name = "Story"       '* Holds Story
      field3.Type = DB_TEXT
      field3.Size = 154
      newtd.Fields.Append field3
      newidx.Name = "PK_ID_IDX"   '* You have to have an index
      newidx.Fields = "PK_ID"
      newidx.Primary = True
      newtd.Indexes.Append newidx
      newdb.TableDefs.Append newtd
      Set newtb = newdb.OpenTable("Money_Table")
      For i% = 1 To 10
         newtb.AddNew
         newtb("PK_ID") = PrimaryKeys(i%)      'place in field1
         newtb("Money") = Money(i%)            'place in field3
         newtb("Story") = Trim$(Strings(i%))   'place in field4
         newtb.Update                          'Saving to table
      Next i%
      newtb.Close                 '* Close DB's table
      newdb.Close                 '* Close DB
      screen.MousePointer = 0     'Set back to show done
   End Sub
 - Add the following code to the Command3 Click event procedure:
    Sub Command3_Click ()
      Dim db As Database
      Dim t As Table
      Dim counter%
      Set db = OpenDatabase("NEWBTWDB.MDB")
      Set t = db.OpenTable("Money_Table")
      counter% = 1           'Start counter at Row=1
      Do Until t.EOF
         grid2.Col = 1
         grid2.Row = counter%
         grid2.Text = t(0)         'Load the PK ID
         grid2.Col = 2
         grid2.Row = counter%
         grid2.Text = t(1)         'Load the Money
         grid2.Col = 3
         grid2.Row = counter%
         grid2.Text = t(2)         'Load the Story
         counter% = counter% + 1
         t.MoveNext
      Loop
      t.Close
      db.Close
   End Sub
 - From the Run menu, choose Start (ALT, R, S), or press the F5 key to run
   the program. First, click the Command1 button. Next, click the Command2
   button. Then click the Command3 button. Compare the results.
  
	
	 |