アクセス小僧:履歴を残す(9)
どうも、今回の変更による悪影響は、
ジョージが作ったデータベース全てに発生しているようで、あ~頭がいたいです。
今回の変更を戻した、というか、さらなる変更をしました。
変更点:DoCmd.GoToRecord acDataFormによる、履歴にあるレコードへの移動をやめ、Me.Recordset.FindFirstによる移動に戻しました。
Private Sub PW_Mng_ID履歴Go_Click()
'【変数】
Dim Ans1 As Long ' 答え
Dim PW_Mng_IDt As Long ' 履歴上のID
Dim AbsPos1 As Long 'レコード番号
Dim Str1 As String ' 文字列
'【実行コード】
Debug.Print "--- PW_Mng_ID履歴Go_Click(Start) ---"
[チェック_ID履歴] = True
Debug.Print "[チェック_ID履歴]=" & [チェック_ID履歴] & "[PW_Mng_ID履歴Go_Click]"
Debug.Print "[PW_Mng_ID履歴].ListIndex=" & [PW_Mng_ID履歴].ListIndex & "[PW_Mng_ID履歴Go_Click]"
If [PW_Mng_ID履歴].ListIndex = -1 Then
Ans1 = MsgBox("PW_Mng_ID履歴が選択されていません。", vbCritical, "エラー")
Debug.Print "--- PW_Mng_ID履歴Go_Click(Exit) ---"
Exit Sub
End If
Str1 = "T_PM_ID = " & CStr([PW_Mng_ID履歴].ListIndex + 1)
PW_Mng_IDt = DLookup("PW_Mng_ID1", "T_PWMngID", Str1)
Debug.Print "PW_Mng_IDt=" & PW_Mng_IDt & "[PW_Mng_ID履歴Go_Click]"
' AbsPos1 = IDtoAbsPos1("T_パスワード管理", "PW_Mng_ID", PW_Mng_IDt)
' Debug.Print "AbsPos1=" & AbsPos1 & "[PW_Mng_ID履歴Go_Click]"
Me.AllowAdditions = True '追加の許可
Me.FilterOn = False ' フィルタ解除
' If AbsPos1 <> -1 Then
' [チェック_ID履歴] = True
' DoCmd.GoToRecord acDataForm, "パスワード入力", acGoTo, AbsPos1 + 1
' [チェック_ID履歴] = False
' End If
If [PW_Mng_ID] = PW_Mng_IDt Then
[チェック_ID履歴] = False
Debug.Print "[チェック_ID履歴]=" & [チェック_ID履歴] & "[PW_Mng_ID履歴Go_Click]"
Debug.Print "--- PW_Mng_ID履歴Go_Click(Exit) ---"
Exit Sub
End If
With Me.Recordset
.FindFirst "PW_Mng_ID = " & PW_Mng_IDt
Debug.Print "Me.Recordset.NoMatch=" & .NoMatch & "[PW_Mng_ID履歴Go_Click]"
If .NoMatch Then
Ans1 = MsgBox("PW_Mng_ID = " & PW_Mng_IDt & "が見つかりません。[PW_Mng_ID履歴Go_Click]", vbCritical, "エラー")
[チェック_ID履歴] = False
Debug.Print "[チェック_ID履歴]=" & [チェック_ID履歴] & "[PW_Mng_ID履歴Go_Click]"
End If
End With
Debug.Print "[PW_Mng_ID]=" & [PW_Mng_ID] & "[PW_Mng_ID履歴Go_Click]"
Debug.Print "--- PW_Mng_ID履歴Go_Click(End) ---"
End Sub
ジョージが作ったデータベース全てに発生しているようで、あ~頭がいたいです。
今回の変更を戻した、というか、さらなる変更をしました。
変更点:DoCmd.GoToRecord acDataFormによる、履歴にあるレコードへの移動をやめ、Me.Recordset.FindFirstによる移動に戻しました。
Private Sub PW_Mng_ID履歴Go_Click()
'【変数】
Dim Ans1 As Long ' 答え
Dim PW_Mng_IDt As Long ' 履歴上のID
Dim AbsPos1 As Long 'レコード番号
Dim Str1 As String ' 文字列
'【実行コード】
Debug.Print "--- PW_Mng_ID履歴Go_Click(Start) ---"
[チェック_ID履歴] = True
Debug.Print "[チェック_ID履歴]=" & [チェック_ID履歴] & "[PW_Mng_ID履歴Go_Click]"
Debug.Print "[PW_Mng_ID履歴].ListIndex=" & [PW_Mng_ID履歴].ListIndex & "[PW_Mng_ID履歴Go_Click]"
If [PW_Mng_ID履歴].ListIndex = -1 Then
Ans1 = MsgBox("PW_Mng_ID履歴が選択されていません。", vbCritical, "エラー")
Debug.Print "--- PW_Mng_ID履歴Go_Click(Exit) ---"
Exit Sub
End If
Str1 = "T_PM_ID = " & CStr([PW_Mng_ID履歴].ListIndex + 1)
PW_Mng_IDt = DLookup("PW_Mng_ID1", "T_PWMngID", Str1)
Debug.Print "PW_Mng_IDt=" & PW_Mng_IDt & "[PW_Mng_ID履歴Go_Click]"
' AbsPos1 = IDtoAbsPos1("T_パスワード管理", "PW_Mng_ID", PW_Mng_IDt)
' Debug.Print "AbsPos1=" & AbsPos1 & "[PW_Mng_ID履歴Go_Click]"
Me.AllowAdditions = True '追加の許可
Me.FilterOn = False ' フィルタ解除
' If AbsPos1 <> -1 Then
' [チェック_ID履歴] = True
' DoCmd.GoToRecord acDataForm, "パスワード入力", acGoTo, AbsPos1 + 1
' [チェック_ID履歴] = False
' End If
If [PW_Mng_ID] = PW_Mng_IDt Then
[チェック_ID履歴] = False
Debug.Print "[チェック_ID履歴]=" & [チェック_ID履歴] & "[PW_Mng_ID履歴Go_Click]"
Debug.Print "--- PW_Mng_ID履歴Go_Click(Exit) ---"
Exit Sub
End If
With Me.Recordset
.FindFirst "PW_Mng_ID = " & PW_Mng_IDt
Debug.Print "Me.Recordset.NoMatch=" & .NoMatch & "[PW_Mng_ID履歴Go_Click]"
If .NoMatch Then
Ans1 = MsgBox("PW_Mng_ID = " & PW_Mng_IDt & "が見つかりません。[PW_Mng_ID履歴Go_Click]", vbCritical, "エラー")
[チェック_ID履歴] = False
Debug.Print "[チェック_ID履歴]=" & [チェック_ID履歴] & "[PW_Mng_ID履歴Go_Click]"
End If
End With
Debug.Print "[PW_Mng_ID]=" & [PW_Mng_ID] & "[PW_Mng_ID履歴Go_Click]"
Debug.Print "--- PW_Mng_ID履歴Go_Click(End) ---"
End Sub
ヤバイぜ! ありがとうございます(^_0)ノ
by cheese999 (2019-03-14 23:35)