
Stressmanと言います。
環境は、Windows98SEでACCESS2002を使っています。
質問というのは、ACCESSのBookmarkプロパティの意味、使い方
を教えていただきたいのです。
ヘルプを読んだのですが、よく分かりません…
ちなみに、ヘルプには
「フォームの基になるテーブル、クエリ、またはSQLステートメント
に含まれる測定のレコードを個別に識別するためのブックマークを設定
します。値の取得および設定が可能です。バリアント型の値を使用します。」
と書いてあります。
具体的に、「こういう意味」「こういう使い方をする」というのを
教えて頂きたいのです。
#サブフォームのレコード移動について調べていたら、「Bookmark」が
#よくでてきたので、「これを理解しないと先に進めない」と判断して
#投稿させていただきました。
#これぐらい知っておけよ、とつっこまないでください…
No.2ベストアンサー
- 回答日時:
>2 、001 、4/5 、田中
>へ移動することも可能なのでしょうか?
その通りです。
この場合は 次のようになります。
Dim Rs As DAO.Recordset
' フォームのレコードを Rs にセット
Set Rs = Me.サブフォームB.form.RecordsetClone
' Rs で No が 2を検索
Rs.FindFirst "[No]=2"
' Rs で Noが2の場所を サブフォームB に反映
Me.サブフォームB.form.Bookmark = Rs.Bookmark
この回答への補足
すいません。
できた、という報告ではなくエラーが出てきました。
---------------------------------
コンパイルエラー
ユーザ定義型は、定義されていません
---------------------------------
というエラーがでて、
Dim Rs As DAO.Recordset
の部分が反転しています。
VBAをあまり理解していないので、
このエラーだけでは、何がどう悪いのか
分かりません。宜しくお願いします。
No.3
- 回答日時:
こんにちは。
maruru01です。Bookmarkの他の用途は、あるレコードにマークしておいて、レコードをいろいろ移動した後で、そのレコードに簡単に戻ってくるというものです。
ヘルプの説明としてはこちらの使い方になるのでしょう。
具体的な方法は、現時点のカレントレコードにマークしておきます。
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim bmark As Variant 'ブックマーク、バリアント型
Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset
rs.Open テーブル名, cn, adOpenKeyset, adLockOptimistic
'ブックマークを取得
bmark = rs.Bookmark
(Move系メソッドなどで別のレコードへ移動)
'元のレコードへ戻る
rs.Bookmark = bmark
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
この回答への補足
maruru01さん、ありがとうございます。
maruru01さんのコードはまだ試していないのですが、
下記のryuu001さんのコードを、元に
Private Sub コマンド_Click()
Dim Rs As DAO.Recordset
Set Rs = Me![サブフォーム].[Form].RecordsetClone
Rs.FindFirst "ID = Me![サブフォーム]![コンボ]"
Me![サブフォーム].[Form].Bookmark = Rs.Bookmark
End Sub
というコードを書きました。すると、
------------------------------------------------------
Me![サブフォーム]![コンボ]を、有効なフィールド名、または
式として認識できません。
------------------------------------------------------
とエラーがでてしまいました。
コンボで指定したレコードに移動したいと思ってやったのですが
うまくいきませんでした…
ありがとうございました。
Private Sub コマンド_Click()
Dim Rs As DAO.Recordset
Set Rs = Me![サブフォーム].[Form].RecordsetClone
Rs.FindFirst "ID =" & Str(Me![コンボ])
Me![サブフォーム].[Form].Bookmark = Rs.Bookmark
End Sub
をコマンドボタンのクリック時のイベント処理で
実行したら、出来ましたぁぁ~♪
説明べたでご迷惑をおかけしました。
また、行き詰まりましたら宜しくお願いします。
No.1
- 回答日時:
「Bookmark」は、フォーム上で、あるレコードを検索し、
フォームの画面を そのレコードへ移すときに使います。
その場合、「Recordsetclone」と組み合わせて 使用します。
ryuu001さん、ありがとうございます。
フォーム上でレコードを検索し、
そのレコードに移動するときに使う、ってことは…
テーブルA
顧客コード、顧客名、住所
テーブルB
No、顧客コード、打合せ日、担当者
というテーブルがあって、それぞれをソースにした
フォームがあるとします。
フォームA→テーブルAをソース
フォームB→テーブルBをソース
で、フォームBをフォームAのサブフォームとして、
「顧客コード」でリンクさせるとします。
そのとき、
テーブルA
顧客コード、顧客名、住所
001 、山本 、東京都
002 、鈴木 、大阪府
003 、太田 、京都府
テーブルB
No、顧客コード、打合せ日、担当者
1 、001 、3/2 、田中
2 、001 、4/5 、田中
3 、002 、3/15 、小川
4 、001 、5/10 、近藤
5 、002 、4/11 、小川
6 、003 、6/14 、工藤
とすると、フォームAで顧客コード「001」を選択すると、
サブフォームB(単票形式、移動ボタン有り)は、
1 、001 、3/2 、田中
2 、001 、4/5 、田中
4 、001 、5/10 、近藤
となります。このとき何らかの処理で、いきなり
2 、001 、4/5 、田中
へ移動することも可能なのでしょうか?
説明べたですいません。
宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
このQ&Aを見た人はこんなQ&Aも見ています
-
Access サブフォームでの選択行の取得
その他(データベース)
-
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
-
4
ACCESSのフォームで次のレコードに移動しない方法を教えてください
その他(データベース)
-
5
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
6
Access VBAでタブコントロールで選択するタブをしていするには。
Access(アクセス)
-
7
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
8
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
9
実行時エラー 3020の対策
Access(アクセス)
-
10
アクセスVBA フォームのスクロールバーを動かす。
Visual Basic(VBA)
-
11
Access2010 「演算子がありません」エラー
その他(データベース)
-
12
[Access]帳票フォームにて連続する非連結コントロールに個々の値を入れるには
Access(アクセス)
-
13
新規レコード行を非表示にしたい
Access(アクセス)
-
14
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
15
「RunSQL」と「Execute」の違い
Access(アクセス)
-
16
Accessの条件付き書式設定で、複数の条件が一致した時の書式を設定したい
その他(Microsoft Office)
-
17
どこにもフォーカスを当てたくない
Access(アクセス)
-
18
[VBA] ADOの Clone と AddNew
その他(プログラミング・Web制作)
-
19
スクロールバーをVBAで操作したい
Access(アクセス)
-
20
アクセス 壊れた? 「ファイルが見つかりません」
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
3つ以上のテーブルをUNIONする...
-
Accessにインポートしたら並び...
-
重複レコードの削除
-
非連結サブフォームのレコード...
-
数百万件レコードのdelete
-
ACCESSのBookmarkプロパティの...
-
Accessで重複したデータを一件...
-
accessで検索&入力 データの...
-
Accessでレコードが更新された...
-
昇順降順の入り混じったクエリ...
-
データの二重表示の原因
-
アクセスで変更ログを作成する
-
ACCESS2002、レコードのインポ...
-
登録したレコードの主キーの取...
-
Excel→Accessテーブル インポ...
-
ManagementStudioからのデータ削除
-
SQLデータ修正時に『このレコー...
-
レコードロックする方法
-
ACCESS【更新クエリの中断がで...
-
テーブルのレコード削除ができ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
3つ以上のテーブルをUNIONする...
-
Accessにインポートしたら並び...
-
データの二重表示の原因
-
Access 1レコードずつcsvで出力...
-
数百万件レコードのdelete
-
ACCESSのBookmarkプロパティの...
-
テーブルのレコード削除ができ...
-
ManagementStudioからのデータ削除
-
Access VBA Me.Requery レコー...
-
Access 削除クエリが重い
-
非連結サブフォームのレコード...
-
SQLデータ修正時に『このレコー...
-
レコードロックする方法
-
(ACCESS)並び替えをしないで...
-
Accessの固有レコード識別子の選択
-
SQLServerで同一条件レコードの...
-
Accessで重複したデータを一件...
-
Accessでの排他制御
-
Accessでレコードが更新された...
-
Access カレントレコードがあり...
おすすめ情報