1

MDBを使用してフィールド サイズを大きくするにはどうすればよいですDAOか?

4

2 に答える 2

3

DDL を使用すると、これをはるかに簡単に行うことができます。

Set db = CurrentDb

sSQL = "ALTER TABLE table1 ALTER Column atext text(150)"
db.Execute sSQL, dbFailOnError

明らかに、これは MS Access 97 では利用できませんが、それ以降 15 年間のどのバージョンでも、DDL が最も簡単なアプローチであると私は提案します。

于 2012-09-12T09:25:55.817 に答える
2

http://www.freevbcode.com/ShowCode.asp?ID=4599から:

Public Sub change_field_size(DBPath as string, _
  tblName As String, fldName As String, fldSize As Integer)
    ' this routine changes the field size

    Dim db As Database
    Dim td As TableDef
    Dim fld As field

    On Error GoTo errhandler

    Set db = OpenDatabase(DBPath)
    Set td = db.TableDefs(tblName)

    If td.Fields(fldName).Type <> dbText Then
        ' wrong field type
        db.Close
        Exit Sub
    End If

    If td.Fields(fldName).size = fldSize Then
        ' the field width is correct
        db.Close
        Exit Sub
    End If

    ' create a temp feild
    td.Fields.Append td.CreateField("temp", dbText, fldSize)
    td.Fields("temp").AllowZeroLength = True
    td.Fields("temp").DefaultValue = """"""

    ' copy the info into the temp field
    db.Execute "Update " & tblName & " set temp = " & fldName & " "

    ' delete the field
    td.Fields.Delete fldName

    ' rename the field
    td.Fields("temp").Name = fldName
    db.Close

'======================================================================
Exit Sub

errhandler:
MsgBox CStr(Err.Number) & vbCrLf & Err.Description & vbCrLf & "Change Field Size Routine", vbCritical, App.Title

End Sub
于 2012-09-12T09:23:12.367 に答える