こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access2007 コンパイルエラーについて

お世話になっております。
Access2003で問題なく使っていたプログラムを2007用accdbに変換して2007で動かしたところ、コンパイルエラーが出るようになりました。

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

コードは以下のとおりで(抜粋)、.Edit部分が反転します。

簡単なVBAはわかりますが、今回のエラーは何が原因かわかりませんので、ご教授いただければ幸いです。
よろしくお願いいたします。


Private Sub 元に戻す1_Click()

Dim dbs As Database
Dim rst1 As Recordset
Dim rst2 As Recordset
Dim strSQL As String
Dim lngTmpVol As Long
Dim lngSubVol As Long

DoCmd.RunCommand acCmdSaveRecord

Set dbs = CurrentDb

'売上構成テーブルから画面上のb伝票コードのレコードセットを開く
strSQL = "SELECT bbコード, 数量 FROM 売上構成 " & _
"WHERE b伝票コード = " & Me!b伝票コード & _
" ORDER BY 売上構成コード DESC"
Set rst1 = dbs.OpenRecordset(strSQL)
'売上構成の読み込みループ
Do Until rst1.EOF
'カレントレコードの数量を変数に保存
lngTmpVol = rst1!数量

'カレントレコードのbbコードと画面上の社員コードで出庫履歴のレコードセットを開く
strSQL = "SELECT 出庫数量, 確定数量, 返却数量 FROM 出庫履歴 " & _
"WHERE bbコード = " & rst1!bbコード & " AND 社員コード = " & Me!社員コード & _
" ORDER BY 出庫日 DESC, 出庫コード DESC"
Set rst2 = dbs.OpenRecordset(strSQL)
With rst2
If .RecordCount > 0 Then
'出庫履歴の読み込みループ
Do Until .EOF
.Edit
If Nz(!確定数量) >= lngTmpVol Then
'数量すべてを確定数量から減算できるとき
'減算後の数量を取得
lngSubVol = Nz(!確定数量) - lngTmpVol
!確定数量 = IIf(lngSubVol <> 0, lngSubVol, Null)
lngTmpVol = 0
Else
'数量すべては確定数量から減算できないとき
lngTmpVol = lngTmpVol - Nz(!確定数量)
!確定数量 = Null
End If
.Update
'すべてを割り当てたらループを抜ける
If lngTmpVol <= 0 Then Exit Do
.MoveNext
Loop
End If
.Close
End With

rst1.MoveNext
Loop
rst1.Close

End Sub

投稿日時 - 2008-06-18 09:15:02

QNo.4109555

すぐに回答ほしいです

質問者が選んだベストアンサー

ADOのRecordsetと解釈されていることが原因でしょう。
EditメソッドはDAOのRecordsetの方にしかありません。
モジュールのデザイン画面で、以下の操作を行ってみてください。

(1)メニューバーの「ツール」→「参照設定」と進む。
(2)DAOがチェックされているか確認する。
 されていなければ、チェックする。
(3)DAOの優先度をADO(ActiveX Data Object)より上げるため、
 ↑で、DAOがADOより上に来るように操作する。

ADOかDAOか、Accessのバージョンが変わる度にコロコロ変わります。
MSにも困ったものですが、明示的に定義するのも一つの方法です。
Dim rst2 As Recordset → Dim rst2 As DAO.Recordset
こうすると、優先度に関わらずDAOのRecordsetになります。

投稿日時 - 2008-06-18 10:03:55

お礼

早々のご回答をありがとうございました。
ご指示のとおり優先度を変更したら正常に動作しました。
Dim rst2 As DAO.Recordsetも勉強になりました。
助かりました。ありがとうございました。

投稿日時 - 2008-06-18 10:29:43

ANo.1

このQ&Aは役に立ちましたか?

9人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問