csr
Programmer
- Jul 20, 2000
- 507
I have just had a request from a customer to convert a visual foxpro file (including memo fields) into an access database.
Here is some code I used a while back to create an Access database with some data. I assume this would work for the present task also.
Just looking for confirmation from some of you.
Also, is there a field type in Access to deal with unlimited sized fields like memo fields ?
oAccess = createObject("Access.Application"
oAccess.NewCurrentDatabase(cWebDataFile)
oMDB = oAccess.CurrentDB
oTable = oMDB.CreateTableDef("KBEVENTS"
oField = oTable.CreateField("EVENT_ID"
oField.Type = 10 && Character Field
oField.Size = 10
oTable.Fields.Append(oField)
oField = oTable.CreateField("CATEGORY"
oField.Type = 10
oField.Size = 20
oTable.Fields.Append(oField)
oField = oTable.CreateField("YEAR"
oField.Type = 7 && Numerical Field
oField.Size = 4
oTable.Fields.Append(oField)
oField = oTable.CreateField("MONTH"
oField.Type = 10
oField.Size = 15
oTable.Fields.Append(oField)
oField = oTable.CreateField("DATES"
oField.Type = 10
oField.Size = 30
oTable.Fields.Append(oField)
oField = oTable.CreateField("CITY"
oField.Type = 10
oField.Size = 20
oTable.Fields.Append(oField)
oField = oTable.CreateField("STATE"
oField.Type = 10
oField.Size = 2
oTable.Fields.Append(oField)
oField = oTable.CreateField("PHONE"
oField.Type = 10
oField.Size = 30
oTable.Fields.Append(oField)
oField = oTable.CreateField("LOCALE"
oField.Type = 10
oField.Size = 40
oTable.Fields.Append(oField)
oField = oTable.CreateField("REP_NAME"
oField.Type = 10
oField.Size = 40
oTable.Fields.Append(oField)
oField = oTable.CreateField("REP_EMAIL"
oField.Type = 10
oField.Size = 50
oTable.Fields.Append(oField)
oField = oTable.CreateField("REP_URL"
oField.Type = 10
oField.Size = 200
oTable.Fields.Append(oField)
oMDB.TableDefs.Append(oTable)
inkey(1)
oRecordSet = oMDB.OpenRecordSet("KBEVENTS"
go top
do while not eof()
oProgress.setPercentage(40 + 60 * recno() / nTotalEvents)
oRecordSet.AddNew
oRecordSet.Fields("EVENT_ID"
.value = events.event_id
oRecordSet.Fields("CATEGORY"
.value = events.category
oRecordSet.Fields("LOCALE"
.value = events.locale
oRecordSet.Fields("YEAR"
.value = events.year
oRecordSet.Fields("MONTH"
.value = events.month
oRecordSet.Fields("DATES"
.value = events.dates
oRecordSet.Fields("CITY"
.value = events.city
oRecordSet.Fields("STATE"
.value = events.state
oRecordSet.Fields("PHONE"
.value = events.phone
oRecordSet.Fields("REP_NAME"
.value = events.web_name
oRecordSet.Fields("REP_EMAIL"
.value = events.web_email
oRecordSet.Fields("REP_URL"
.value = events.web_url
oRecordSet.Update
skip
enddo
inkey(1)
oRecordSet.Close
Don
dond@csrinc.com
Here is some code I used a while back to create an Access database with some data. I assume this would work for the present task also.
Just looking for confirmation from some of you.
Also, is there a field type in Access to deal with unlimited sized fields like memo fields ?
oAccess = createObject("Access.Application"
oAccess.NewCurrentDatabase(cWebDataFile)
oMDB = oAccess.CurrentDB
oTable = oMDB.CreateTableDef("KBEVENTS"
oField = oTable.CreateField("EVENT_ID"
oField.Type = 10 && Character Field
oField.Size = 10
oTable.Fields.Append(oField)
oField = oTable.CreateField("CATEGORY"
oField.Type = 10
oField.Size = 20
oTable.Fields.Append(oField)
oField = oTable.CreateField("YEAR"
oField.Type = 7 && Numerical Field
oField.Size = 4
oTable.Fields.Append(oField)
oField = oTable.CreateField("MONTH"
oField.Type = 10
oField.Size = 15
oTable.Fields.Append(oField)
oField = oTable.CreateField("DATES"
oField.Type = 10
oField.Size = 30
oTable.Fields.Append(oField)
oField = oTable.CreateField("CITY"
oField.Type = 10
oField.Size = 20
oTable.Fields.Append(oField)
oField = oTable.CreateField("STATE"
oField.Type = 10
oField.Size = 2
oTable.Fields.Append(oField)
oField = oTable.CreateField("PHONE"
oField.Type = 10
oField.Size = 30
oTable.Fields.Append(oField)
oField = oTable.CreateField("LOCALE"
oField.Type = 10
oField.Size = 40
oTable.Fields.Append(oField)
oField = oTable.CreateField("REP_NAME"
oField.Type = 10
oField.Size = 40
oTable.Fields.Append(oField)
oField = oTable.CreateField("REP_EMAIL"
oField.Type = 10
oField.Size = 50
oTable.Fields.Append(oField)
oField = oTable.CreateField("REP_URL"
oField.Type = 10
oField.Size = 200
oTable.Fields.Append(oField)
oMDB.TableDefs.Append(oTable)
inkey(1)
oRecordSet = oMDB.OpenRecordSet("KBEVENTS"
go top
do while not eof()
oProgress.setPercentage(40 + 60 * recno() / nTotalEvents)
oRecordSet.AddNew
oRecordSet.Fields("EVENT_ID"
oRecordSet.Fields("CATEGORY"
oRecordSet.Fields("LOCALE"
oRecordSet.Fields("YEAR"
oRecordSet.Fields("MONTH"
oRecordSet.Fields("DATES"
oRecordSet.Fields("CITY"
oRecordSet.Fields("STATE"
oRecordSet.Fields("PHONE"
oRecordSet.Fields("REP_NAME"
oRecordSet.Fields("REP_EMAIL"
oRecordSet.Fields("REP_URL"
oRecordSet.Update
skip
enddo
inkey(1)
oRecordSet.Close
Don
dond@csrinc.com