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
A
参照設定「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 で解決 「.」ではなく「!」
|
|