|
▼アイマール さん:
こんにちは。
だんだんと原因は絞られてきた様な気がしませんでしょうか。
次にチェックするのはエラーが起こるテキストボックスと
エラーがおきないテキストボックスで何が違うのか調べてみましょう。
例として…
Option Compare Database
Option Explicit
Sub TextBoxのプロパティをチェック()
Const FName = "該当フォーム名"
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim strSQL As String
Dim FLG As Boolean
Dim ctl As Access.Control
Dim i As Long
Set DB = CurrentDb
On Error Resume Next
DoCmd.DeleteObject acTable, "EX_TableCheck"
On Error GoTo 0
DoCmd.OpenForm FName, acDesign
FLG = True
For Each ctl In Forms(FName).Controls
If ctl.ControlType = acTextBox Then
If FLG Then
Call Create_Table(DB, ctl)
FLG = False
End If
Set RS = DB.OpenRecordset("EX_TableCheck", dbOpenDynaset)
RS.AddNew
For i = 1 To RS.Fields.Count - 1
On Error Resume Next
RS(i).Value = ctl.Properties(Mid(RS(i).Name, 3))
If Err.Number <> 0 Then
RS(i).Value = "ERROR!!!"
End If
On Error GoTo 0
Next
RS.Update
RS.Close
End If
Next
DoCmd.Close acForm, FName
Set RS = Nothing
Set DB = Nothing
End Sub
Function Create_Table(DB As DAO.Database, objText As Access.TextBox)
Dim strSQL As String
Dim strField As String
Dim prp As Object
For Each prp In objText.Properties
strField = strField & ", F_" & prp.Name & " TEXT(50)"
Next
strSQL = "CREATE TABLE EX_TableCheck(" _
& "SEQ Counter(1), " _
& Mid(strField, 2) _
& ");"
DB.Execute strSQL, dbFailOnError
End Function
上記の様なコードを標準モジュールに記載し実行した後に
テーブル EX_TableCheck の値を見比べて見ると何か見つかるかもしれません。
(見つからないかも…しれません…。)
|
|