Access、AccessVBAエラーとその対処方法

 

ACCESS初心者のために、実際に発生したエラーとその対処方法を書きました。
なお、環境の違い、プログラムロジックの違いなどがあり、
あくまでも問題解決の1例、ヒントとしてとらえて下さい。

開発環境
Access2000〜Access2010
終了は[×](閉じる)
 
ヒント集
ACCESS実行時エラー ACCESSエラー
   
 
よくある質問 エラー一覧
ACCESS実行時エラー
Q:実行時エラー'13' 型が一致しません。
Q:実行時エラー'91' オブジェクト変数またはwithブロック変数が設定されていません。
Q:実行時エラー'438' このオブジェクトは、このプロパティまたはメソッドをサポートしていません。
Q:実行時エラー'2102' フォーム名'F_受注登録'が不正です
Q:実行時エラー'2105' 指定したレコードに移動できません
Q:実行時エラー'2110' コントロール'請求NO'にフォーカスを移動することはできません
Q:実行時エラー'2185' コントロールがフォーカスを取得していないときに、コントロールプロパティまたはメソッドを参照することは出来ません。
Q:実行時エラー'2451' レポート名'明細票'の指定が間違っています。または、参照しているレポートが閉じているか、存在しません。
Q:実行時エラー'2465' 指定した式で参照されている'TESD2'フィールドが見つかりません
Q:実行時エラー'2493' このアクションを実行するには[オブジェクト名]引数が必要です。
Q:実行時エラー'3011' オブジェクト"在庫.xls"が見つかりません。
Q:実行時エラー'3051'  ファイル'\\abc001\aaa\abc.mdb'を開くか、書き込むことができませんでした。
他のユーザーが排他的に開いているか、データの表示と書込みを行う権限がありませんでした。
Q:実行時エラー'3070' 'xxx'を有効なフィールド名、または式として認識できません。
Q:実行時エラー'3075' クエリ式'[処理年月] = ##'の構文エラーです。
Q:実行時エラー'3078' 入力テーブルまたはクエリ"在庫クエリ"が見つかりません。そのテーブルやクエリが存在しているか、または名前が正しいことを確認して下さい。
Q:実行時エラー'3101' フィールド'業者コード'とキーが一致しているレコードをテーブル'業者'で探すことができません。
Q:実行時エラー  キー違反です  一般SQLエラーです  [Microsoft][ODBC SQL Server Driver]SSPIコンテキストを生成できません。
 
ACCESSエラー
Q:正しいのに、どうしてもエラーになる時は。
Q:実行すると「パラメータの入力」画面が表示される
Q:このフィールドに入力した値が不正です。
Q:このオブジェクトに値を代入することはできません。
Q:このフィールドのメソッド、データが見当たりません。
Q:セクションの幅がページ幅よりも広く、はみ出す部分に印刷される項目がないため、一部のページが白紙になります。
Q:#Errorが表示される。
Q:イベントプロパティに指定した式クリック時でエラーが発生しました。 クエリ式 〜 この関数は式では使用できません。
Q:イベントプロパティに指定した式クリック時でエラーが発生しました。 ファイル名または番号が不正です。
Q:MDEが作成できない、MDEが動かない
Q:オブジェクトが開いている場合は、操作は許可されません
Q:オブジェクトが閉じている場合は、操作は許可されません
Q:SQL構文エラー
Q:BOとEOFのいずれかがTRUEになっているか、または現在のレコードが削除 されています。要求された操作には現在のレコードが必要です。
Q:CommandオブジェクトのCommandTextが設定されていません
Q:要求された名前、または序数に対応する項目がコレクションで見つかりません
Q: データベースまたはプロジェクトに、ファイル'msado15.dll'version6.1を 参照する切断された参照がふくまれています。
*データベースまたはプロジェクトが正しいかどうか確認し、この参照を修復してください。
Q: 現在のRecordsetは更新をサポートしていません。プロバイダか、選択された ロックタイプの限界の可能性があります。
Q: フィールドを更新できません
Q:コンパイルエラー ユーザ定義型は定義されていません
Q:コンパイルエラー 変数が定義されていません
Q:コンパイルエラー メソッドまたはデータメンバが見つかりません。
 



 
■ ACCESS実行時エラーl


Q:実行時エラー'13' 型が一致しません。
A:変数にするには"'" & 変数 & "'" でくくる
 誤:Me![cbo商品].DefaultValue = Me![cbo商品].ItemData(0)
 正:Me![cbo商品].DefaultValue = "'" & Me![cbo商品].ItemData(0) & "'"


Q:実行時エラー'91' オブジェクト変数またはwithブロック変数が設定されていません。
A:  Newが無かった

 誤:Private rs02 As ADODB.Recordset
 正:Private rs02 As New ADODB.Recordset


Q:実行時エラー'438' このオブジェクトは、このプロパティまたはメソッドをサポートしていません。
A:Filterでテキストを記入すべきが、コマンドボタンを記入していた。
 入力誤りが多い


Q:実行時エラー'2102' フォーム名'F_受注登録'が不正です。
A:フォーム名'F_受注登録'が存在しない。
 入力誤りが多い

Q:実行時エラー'2105' 指定したレコードに移動できません
A1:「更新できないクエリ」だった。クエリを修正する
 「更新できないクエリ」は「このレコードセットは更新できません」と表示される。
「更新できないクエリ」とは
クエリー内で集合関数(SUMなど)を使っている
ユニオンクエリーを使っている
結合しているテーブルで1対多の関係が保たれていない時
結合しているテーブルがあまりに多く複雑な時(一つづつ外すと分かる)

A2:新規レコードの時に、DoCmd.GoToRecord , , acPrevious  を実行した。
If Me.NewRecord = False Thenを入れて抜ける。



Q:実行時エラー'2110' コントロール'請求NO'にフォーカスを移動することはできません
A:'請求NO'のプロパティの使用可能が「いいえ」になっていた
 

Q:実行時エラー'2185' コントロールがフォーカスを取得していないときに、コントロールプロパティまたはメソッドを参照することは出来ません。
A:
Private Sub 在庫区分2_Enter()
    '再クエリ
    Me!在庫区分2.Requery

    'コンボボックスの自動ドロップダウン
    Me!在庫区分2.Dropdown
End Sub

Me!在庫区分2.DropdownがPrivate Sub 在庫区分1_Enter() に入っていた

 

Q:実行時エラー'2451' レポート名'明細票'の指定が間違っています。または、参照しているレポートが閉じているか、存在しません。
A:レポートから起動すべきが、直接フォームから起動している
 レポートから起動する。
 

Q:実行時エラー'2465' 指定した式で参照されている'TESD2'フィールドが見つかりません
A:項目名の入力誤り 
 誤:'TESD2'   正:'TESTD2'
 

Q:実行時エラー'2493' このアクションを実行するには[オブジェクト名]引数が必要です。
A:引数がない 
 誤:DoCmd.Close acReport
 正:DoCmd.Close acReport, "明細表"
 

Q:実行時エラー'3011' オブジェクト"在庫.xls"が見つかりません。

A:ファイル名、テーブル名が違っている 
 ファイル名の入力誤り
 エキスポート命令を誤ってインポート命令で実行した。
 
Q:実行時エラー'3051'  ファイル'\\abc001\aaa\abc.mdb'を開くか、書き込むことができませんでした。
他のユーザーが排他的に開いているか、データの表示と書込みを行う権限がありませんでした。
A:
'\\abc001\aaa\abc.mdb'のネットワークがつながっていなかった
 

Q:実行時エラー'3070' 'xxx'を有効なフィールド名、または式として認識できません。
A:    
Me.Recordset.FindFirst "[請求NO]=" & Me.請求一覧
 

Q:実行時エラー'3075' クエリ式'[処理年月] = ##'の構文エラーです。
A:
Me.Filter = "処理年月 = #" & Me![test2] & "#"  で test2がNULLになっていた。

----------------------------------------------------
Q: 実行時エラー'3075'  クエリ式'(([jisekiymd] BETWEEN #20090807# AND #20090807#) and (aacd = '00') and (bbcd = '11')'の日付構文エラーです
----------------------------------------------------

日付抽出を最初は日付形式だったが後で文字形式に変更した時、ここも#20090807#から'20090807'に直し忘れた

これはダメ
DoCmd.OpenReport "R生産日報", acViewNormal, _ , "([生産日] BETWEEN #" & Me!txt開始日付 & "# AND #" & Me!txt終了日付 & "#) and (kouteicd = '" & Me![cbo工程].Value & "')"


これがOK
DoCmd.OpenReport "R生産日報", acViewNormal, _ , "([生産日] BETWEEN '" & Me!txt開始日付 & "' AND '" & Me!txt終了日付 & "') and (kouteicd = '" & Me![cbo工程].Value & "')"



Q:実行時エラー'3078' 入力テーブルまたはクエリ"在庫クエリ"が見つかりません。そのテーブルやクエリが存在しているか、または名前が正しいことを確認して下さい。
A:
Private Sub 在庫区分_BeforeUpdate(Cancel As Integer)
     '在庫区分名の取得
     Me!在庫区分名 = DLookup("在庫区分名", "在庫区分クエリ", _
     "在庫区分ID = '" & Me!在庫区分ID & "'")
End Sub

「在庫区分クエリ」が間違っていた。




Q:実行時エラー'3101' フィールド'業者コード'とキーが一致しているレコードをテーブル'業者'で探すことができません。
Me.Requeryで発生

A:本来の原因はキーの不一致だが、
追加モードのDoCmd.GoToRecord , , acNewRecが実行されていたため、このエラーが出た
CancelのMe.Undoを先に実行すると直った。
(直接のエラーとは関係ないが回りまわってこれが原因となった)
 

Q:実行時エラー  キー違反です  一般SQLエラーです  [Microsoft][ODBC SQL Server Driver]SSPIコンテキストを生成できません。

A: サーバに登録したデータベースユーザが有効になっていない。

SQL Serverを再立ち上げ(停止→開始)することで有効になります。

 

 
■ ACCESSエラー


Q:正しいのに、どうしてもエラーになる時は。
A:
  DBの最適化を行うとうまくいく時がある。
  


Q:実行すると「パラメータの入力」画面が表示される
A:未定義の項目名を使用している時、表示される
 入力誤りが多い 
  


Q:このフィールドに入力した値が不正です。
A:項目にNULLが入っていた。
  


Q:このオブジェクトに値を代入することはできません。
A:数値項目に文字を転送していた。
  


Q:このフィールドのメソッド、データが見当たりません。
A:「txt運搬」の計算式で発生した。
コード記述は別PGの「txt運搬」をコピーした。
「txt運搬」を「txtunpn」に置き換えしたら動いた。

「txtunpn」を「txt運搬」に戻したら動いてしまった。
コードの日本語コピーは危ないのか原因不明で直ってしまった。
  


Q:セクションの幅がページ幅よりも広く、はみ出す部分に印刷される項目がないため、一部のページが白紙になります。
A:規程のページ幅より広く指定している。
 B4の場合、257×364mm なので、
 364> レポートプロパティ幅+ページ設定の余白「左」+「右」である事
例 364 > 333+20+10=363  でOK
  


Q:#Errorが表示される。
A1:コントロールソースの式が間違っている。
A2:コントロールソースの式が正しくてもエラーになる。
  コントロールソース:=IIf([在庫区分]="00","",[在庫区分])
   これは、名前も「在庫区分」にしていた。--->txt在庫区分に変更する。
  


Q:イベントプロパティに指定した式クリック時でエラーが発生しました。
クエリ式 〜 この関数は式では使用できません。

サーバーのAccess(mde、accde)を実行する時、自分のパソコンではエラーが出ないが、 他県のパソコンで実行すると以下のエラーが出てしまう????

--------------------------------------------
イベントプロパティに指定した式クリック時でエラーが発生しました。
クエリ式 'Mid(dbo_t_jssagyo.jituseiymd,1,4) & "/" & Mid(dbo_t_jssagyo.jituseiymd,5,2) & "/" & Mid(dbo_t_jssagyo.jituseiymd,7,2)' の この関数は式では使用できません
--------------------------------------------

原因--------------------------------
2002-2003ファイル形式をAccess2007でMDEを作成したのが原因と思われる

回答A1----------------------------
2003のファイル形式はAccess2003でMDEを作る

Access2003のパソコンに移してMDEを作成する

MDEを実行すると、正常に処理された。OKホッ!!


回答A2----------------------------
新のパソコンはAccess2007なのでAccess2007で動くようにする。

1.ファイル形式を2007にして、Access2007でMDE(accde)を作成する

(1)Access2007のパソコンで立ち上げる
(2)Officeボタン→名前を付けて保存→データベースを他の形式で保存(Access2007データベース)
(3)保存先:xxxxx.accdb→保存
(4)このデータベースはAccess2007ファイル形式にアップグレードされました  →[OK] →閉じる

(5)xxxxx.accdbをWクリックして立ち上げる
(6)「データベースツール」タブ→「ACCDEの作成」→保存先:xxxxx.accde [保存] →閉じる

*xxxxx.accdeをWクリックして実行する

結果、同じエラーが出てダメ!!  2007ファイル変換はダメだ


2.ファイル変換をあきらめて、新規ファイルにオブジェクトをインポートしてファイル形式を2007にする。

(1)Access2007のパソコンで新規に立ち上げる Database1.accdb [作成]
(2)「外部データ」タブ→「Access」(Accessデータベースのインポート)
(3)インポート元ファイル名:xxxxx.mdb ◎現在のデータベースにテーブル〜  [OK]
(4)「オブジェクトのインポート」タブ
「テーブル」タブ→[すべて選択]
「クエリ」タブ→[すべて選択]
「フォーム」タブ→[すべて選択]
「レポート」タブ→[すべて選択]
「マクロ」タブ→[すべて選択]
「モジュール」タブ→[すべて選択]
[OK] 「インポート操作の保存」そのまま[閉じる]
(5)いったん閉じる(保存のため)

(6)Database1.accdbをWクリックして立ち上げる
(7)「データベースツール」タブ→「ACCDEの作成」→保存先:Database1.accde [保存] →閉じる

*Database1.accdeをWクリックして実行する

結果、正常に処理されてOK、無事完了ホッ!!


--------*結論*--------------------
1.MDEを作成する時はファイル形式と同じバージョンのAccessを使用しなければダメだ

----Accessファイル形式-------------Accessバージョン
Access2000ファイル形式    →   Access2000
Access2002-2003ファイル形式  →   Access2003
Access2007ファイル形式    →   Access2007

*「Accessファイル形式」の見方
Access読込→「ナビゲーションウィンドウ(オブジェクトが出ている画面)」の青いバーに表示されている(表示されていない時は「F11」を押す)→
「ABC:データベース(Access2002-2003ファイル形式)」

*「Accessバージョン」の見方
Access読込→ヘルプ→バージョン情報→
「Microsoft Office Access 2003(11.8166.8221) SP3」

2.ファイル形式変換はAccessの「データベースを他の形式で保存」はダメで、「新規ファイルからインポート」の方が良い

3.MDE(ACCDE)を作成する前に必ず、「データベースの最適化/修復」を行う

*「データベースの最適化/修復」の仕方
Access2003の時:ツール→データベースユーティリティ→「データベースの最適化/修復」

Access2007の時:Officeボタン→管理→「データベースの最適化/修復」

  


Q:イベントプロパティに指定した式クリック時でエラーが発生しました。
ファイル名または番号が不正です。

先週まではこのエラーが出なかったが、今週の月曜日に実行したらなぜかこのエラーになった。
どこもソースを触って無くてエラーになった。摩訶不思議??


==========================================================================
A1:
原因は9時1分1秒が09:01:01と思っていたのが、9:1:1だったのでファイル名作成で桁がずれて、出力ファイルに:が入って ファイル名誤りでエラーになった
==========================================================================

Midで年月日時分秒を抽出していた
str年月 = Mid(str処理日, 1, 4) & Mid(str処理日, 6, 2)
str年月日時分秒 = str年月 & Mid(str処理日, 9, 2) & "_" & Mid(str処理日, 12, 2) & Mid(str処理日, 15, 2) & Mid(str処理日, 18, 2)

処理日:2012年01月15日09時10分01秒

誤:str処理日 = Now()                 これだと1桁は1桁になり抽出桁がずれる
  str処理日 = 2012115 9101

正:str処理日 = Format(Now, "yyyy/mm/dd hh:nn:ss")  桁を2桁固定にできるので、抽出桁がずれない
  str処理日 = 20120115 091001


--------------------誤--------------------------------
str処理日 = Now()
  str年月 = Mid(str処理日, 1, 4) & Mid(str処理日, 6, 2)
  str年月日時分秒 = str年月 & Mid(str処理日, 9, 2) & "_" & Mid(str処理日, 12, 2) & Mid(str処理日, 15, 2) & Mid(str処理日, 18, 2)
  strOutFileName = "\\sv003\在庫\" & str年月日時分秒 & "_" & strFName
----------------------------------------------------

---------------------正-------------------------------
str処理日 = Format(Now, "yyyy/mm/dd hh:nn:ss")
  str年月 = Mid(str処理日, 1, 4) & Mid(str処理日, 6, 2)
  str年月日時分秒 = str年月 & Mid(str処理日, 9, 2) & "_" & Mid(str処理日, 12, 2) & Mid(str処理日, 15, 2) & Mid(str処理日, 18, 2)
  strOutFileName = "\\sv003\在庫\" & str年月日時分秒 & "_" & strFName
----------------------------------------------------



==========================================================================
A2:
ファイルの存在チェックをDIR関数からFileSystemObjectに変更する
ファイル番号を固定#1から FreeFileに変更する
==========================================================================

最初はA2の「ファイルの存在チェック」と「ファイル番号を固定」が原因だと思って、 ここに記入しましたが、翌日またエラーが出てしまいました。

原因はA2ではなくA1の「日付時間」が1桁になってけたがずれたのが正解でした。


せっかく書いたのでコーディング例として残しておきます。


------------------------------------------------------------
変更前
------------------------------------------------------------
  strFName = "abc.txt"
  strInFileName = "\\sv003\在庫\" & strFName
  strOutFileName = "\\sv003\在庫\" & str年月日時分秒 & "_" & strFName
---------------ファイル存在チェック----------------------
  If Dir(strInFileName) =  ""  Then
''   MsgBox  strInFileName  &  "が見つかりません"
    Exit  Sub
  End  If

---------------ファイルコピー保存----------------------------
  Open  strInFileName  For  Input  As  #1
  Open  strOutFileName  For  Output  As  #2

  Do  Until  EOF(1)
    Line  Input  #1,  strInput
    Print  #2,  strInput
    ctr0  =  ctr0  +  1
  Loop

  Close #1    Close #2

------------------------------------------------------------
変更後
------------------------------------------------------------

  strFName = "abc.txt"
  strInFileName = "\\sv003\在庫\" & strFName
  strOutFileName = "\\sv003\在庫\" & str年月日時分秒 & "_" & strFName

---------------ファイル存在チェック----------------------

  Dim objFSO As FileSystemObject
  Set objFSO = CreateObject("Scripting.FileSystemObject")

  If objFSO.FileExists(strInFileName) = True Then
''   MsgBox "strInFileNameは存在します!"
    Set objFSO = Nothing
  Else
''   MsgBox "strInFileNameは見つかりません!"
    Set objFSO = Nothing
    Exit Sub
  End If

---------------ファイルコピー保存----------------------------
  Dim fileNo1 As Integer 'ファイル番号
   fileNo1 = FreeFile 'ファイル番号取得
   Open strInFileName For Input As #fileNo1

   Dim fileNo2 As Integer 'ファイル番号
   fileNo2 = FreeFile 'ファイル番号取得
   Open strOutFileName For Output As #fileNo2

   Do Until EOF(fileNo1)
     Line Input #fileNo1, strInput
     Print #fileNo2, strInput
     ctr0 = ctr0 + 1
   Loop

   Close #fileNo1
   Close #fileNo2

---------------ファイルコピー----------------------------

*FileSystemObjectを使う時は、参照設定「Microsoft Scripting Runtime」の登録が必要

●登録方法

ALT+F11 でコード画面表示
「ツール」→「参照設定」
「参照可能なライブラリファイル」から「Microsoft Scripting Runtime」を探して(下に移動)チェックをつける
「OK」
画面が消える

●チェックされたか再度確認する
「ツール」→「参照設定」
チェックマークがついてある一番最後に「Microsoft Scripting Runtime」がある
「キャンセル」で戻る

*「参照設定」はPG単位に設定される 他のPGでは反映されない

----------------------------------------------------------

  


Q:MDEが作成できない、MDEが動かない
ファイル形式はAccess2003の時で

Access2007でMDEを作成して、MDEを実行したところメニューをクリックしても無反応でAccessを実行できない。
同じAccessを別のパソコンAccess2003でMDEを作成したところ実行中で終了しない。

原因:コンパイルが未完であった

VBA画面で「デバッグ」を見ると「ABCのコンパイル」通常は薄地になっている 
ところがコンパイルが未完の時は「ABCのコンパイル」は薄地になっていない。

薄地になっていなかったので、「ABCのコンパイル」を実行してオブジェクトの保存をしたら直った。

  


Q:オブジェクトが開いている場合は、操作は許可されません
A1:
rs03.Open "TB03_ZAIKMST", CurrentProject.Connection, adOpenStatic, adLockOptimistic

"TB03_ZAIKMST"が他でOPENされている

二回OPENしていた
  


Q:オブジェクトが閉じている場合は、操作は許可されません  
A1:
SQLでインサート、'「*車種*、*商品*以外」を抽出
wwSQL3 = "INSERT INTO TB10_FUKA ( T90_SOTND, T90_FK_KTTI_YMD, T90_KSEI_ABC_CD, T90_KSEI_ABC, T90_SOTND_COUNT ) " _
& "SELECT TKB_FK.SOTND, TAA_FK.FK_KTTI_YMD, TAA_FK.KSEI_ABC_CD, TAA_FK.KSEI_ABC, Count(TAA_FK.SOTND) AS ssCOUNT " _
& "FROM TAA_FK " _
& "WHERE (((TAA_FK.KSEI_ABC) Not Like '*車種*' And (TAA_FK.KSEI_ABC) Not Like '*商品*') AND ((TAA_FK.FK_KTTI_YMD)= '" & rs03!T03_KETEI & "')) " _
& "GROUP BY TAA_FK.SOTND, TAA_FK.FK_KTTI_YMD, TAA_FK.KSEI_ABC_CD, TAA_FK.KSEI_ABC " _ & "HAVING (((([TAA_FK].[KSEI_ABC]) Like '*商品*' And ([TAA_FK].[KSEI_ABC]) Like '*車種*') = False)) " _
& "ORDER BY TAA_FK.SOTND, TAA_FK.FK_KTTI_YMD, TAA_FK.KSEI_ABC_CD, TAA_FK.KSEI_ABC;"
rs10c.Open wwSQL3, CurrentProject.Connection, adOpenStatic, adLockOptimistic

原因不明のため、アクションクエリーで実行する
  


Q:SQL構文エラー  
A1:

スペースが日本語になっていた。
  


Q:BOとEOFのいずれかがTRUEになっているか、または現在のレコードが削除 されています。要求された操作には現在のレコードが必要です。  
A1:
テストロジックですべて読んでいた。
  


Q:CommandオブジェクトのCommandTextが設定されていません  
A1:
wwSQLに何も入っていない 順番間違い

rs91.Open wwSQL, CurrentProject.Connection

wwSQL = "SELECT TAB_FK.SOTND, TAB_FK.FK_KTTI_YMD " _
& "FROM TAB_FK " _
& "GROUP BY TAB_FK.SOTND, TAB_FK.FK_KTTI_YMD " _
& "ORDER BY TAB_FK.SOTND DESC , TAB_FK.FK_KTTI_YMD DESC;"

  


Q:要求された名前、または序数に対応する項目がコレクションで見つかりません  
A1:

SELECT文で名前を変えていた
ORDER GROUP FROM はSELECT文に無いとダメ

AA_KTTI_YMD AS WWW で名前を変えていた


wwSQL = "SELECT TAB_AA.SOTND, TAB_AA.AA_KTTI_YMD AS WWW, Count(TAB_AA.HHS_BNG) AS wwCOUNT " _
& "FROM TAB_AA " _
& "WHERE (((TAB_AA.AA_KTTI_YMD) = '" & strKETEI & "')) " _
& "GROUP BY TAB_AA.SOTND, TAB_AA.AA_KTTI_YMD " _
& "ORDER BY TAB_AA.SOTND, TAB_AA.AA_KTTI_YMD;"


wwSQL = "SELECT TAB_AA.SOTND, TAB_AA.AA_KTTI_YMD, Count(TAB_AA.HHS_BNG) AS wwCOUNT " _
& "FROM TAB_AA " _
& "WHERE (((TAB_AA.AA_KTTI_YMD) = '" & strKETEI & "')) " _
& "GROUP BY TAB_AA.SOTND, TAB_AA.AA_KTTI_YMD " _
& "ORDER BY TAB_AA.SOTND, TAB_AA.AA_KTTI_YMD;"

A2:
接続は「!」ではなく「.」が正しい

誤:rs11a!Filter = "T11_HHS_BNG = '" & wwz1 & "'"

正:rs11a.Filter = "T11_HHS_BNG = '" & wwz1 & "'"

実行命令は「.」でrs11a.Filter     「!」ではない
項目名称は「!」でrs11a!T11_ERR4    「.」ではない


A3:
項目名が間違っていた

誤:T11_BNGA

正:T11_BNG  が正しい


  


Q: データベースまたはプロジェクトに、ファイル'msado15.dll'version6.1を 参照する切断された参照がふくまれています。
*データベースまたはプロジェクトが正しいかどうか確認し、この参照を修復してください。
A1:
Access2010で稼働していたPGをAccess2007で実行したらこのエラーが出た

参照設定
参照不可:MicrosoftActiveX Data Objects 6.1 Library

MicrosoftActiveX Data Objects 6.1 Librarをチェックをはずす


  


Q: 現在のRecordsetは更新をサポートしていません。プロバイダか、選択された ロックタイプの限界の可能性があります。
A1:
誤:rs11a.Open "T_ZAIKO", CurrentProject.Connection, adOpenStatic

正:rs11a.Open "T_ZAIKO", CurrentProject.Connection, adOpenStatic, adLockOptimistic


  


Q: フィールドを更新できません
A1:
クエリ上で入力不可の演算フィールドになっている

フィールドリストを表示して(デザイン→ツール 既存のフィールドの追加)
必要項目をドラッグ&ドロップする
コントロールレイアウトの解除(配置→レイアウトの調整 解除)
画面に表示する必要がない時は、可視をいいえ

  


Q:コンパイルエラー ユーザ定義型は定義されていません
----------------------------
Dim objFSO As FileSystemObject               *ここで発生した
Set objFSO = CreateObject("Scripting.FileSystemObject")

   If objFSO.FileExists(strInFileName) = True Then
''       MsgBox "strInFileNameは存在します!"
      Set objFSO = Nothing
    Else
''       MsgBox "strInFileNameは見つかりません!"
      Set objFSO = Nothing
       Exit Sub
   End If


参照設定「Microsoft Scripting Runtime」が登録されていなかった

●登録方法
ALT+F11 でコード画面表示
「ツール」→「参照設定」
「参照可能なライブラリファイル」から「Microsoft Scripting Runtime」を探して(下に移動)チェックをつける
「OK」
画面が消える

●チェックされたか再度確認する
「ツール」→「参照設定」
チェックマークがついてある一番最後に「Microsoft Scripting Runtime」がある
「キャンセル」で戻る

*「参照設定」はPG単位に設定されるので他のPGでは反映されない


  


Q:コンパイルエラー 変数が定義されていません  

wwSQL = "SELECT TAB_AA.SOTND, TAB_AA.AA_KTTI_YMD, Count(TAB_AA.HHS_BNG) AS wwCOUNT " _
& "FROM TAB_AA " _
& "WHERE (((TAB_AA.AA_KTTI_YMD) = '" & strKETEI & "')) " _
& "GROUP BY TAB_AA.SOTND, TAB_AA.AA_KTTI_YMD " _
& "ORDER BY TAB_AA.SOTND, TAB_AA.AA_KTTI_YMD;"

rs91.Open wwSQL, CurrentProject.Connection

Do Until rs91.EOF
Debug.Print rs91!AA_KTTI_YMD & ".." & rs91!SOTND & ".." & wwCOUNT
rs91.MoveNext
Loop

誤:wwCOUNT   正:rs91!wwCOUNT    rs91!付け忘れ  
  


Q:コンパイルエラー メソッドまたはデータメンバが見つかりません  

'フィルタを実行
   Me.FilterOn = True なので
誤  rs1.FilterOn = True で発生

この場合は
正  rs1!FilterOn = True で解決   「.」ではなく「!」
  


 
このページTOPへ
VBエラー対処         ACCESSヒント .

SEプログラマー・ヒント集メニューへ

Copyright © 2006-2013 s-kitagawa accerr