ACC97: Manipulating Objects with DAO May Cause Database Bloat (172285)
The information in this article applies to:
This article was previously published under Q172285 Advanced: Requires expert coding, interoperability, and multiuser skills.
SYMPTOMS
When you use Data Access Objects (DAO) to create objects in a database,
the size of the database increases substantially during the operation.
After compacting, the size of the database is much smaller.
This article assumes that you are familiar with Visual Basic for
Applications and with creating Microsoft Access applications using the
programming tools provided with Microsoft Access. For more information
about Visual Basic for Applications, please refer to the "Building
Applications with Microsoft Access 97" manual.
RESOLUTION
Use SQL Data Definition Language (DDL) statements rather than DAO to
create or modify database objects. For example, you can use the following
procedure to work around the behavior demonstrated in the "Steps to
Reproduce Problem" section later in this article:
Sub CreateTables()
Dim db As Database
Dim sql As String
Dim i As Integer, j As Integer
Set db = CurrentDb()
For i = 1 To 20
sql = "CREATE TABLE Table" & i & " ("
For j = 1 To 200
sql = sql & "Field" & j & " TEXT,"
Next
sql = Left$(sql, Len(sql) - 1) & ");"
db.Execute sql
Next
Application.RefreshDatabaseWindow
End Sub
STATUS
Microsoft has confirmed this to be a problem in Microsoft Access 97.
REFERENCES
For more information about DDL queries, search the Help Index for
"data-definition queries," or ask the Microsoft Access 97 Office
Assistant.
| Modification Type: | Major | Last Reviewed: | 10/20/2003 |
|---|
| Keywords: | kbbug kbusage KB172285 |
|---|
|