
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Access サブフォームでの選択行の取得
その他(データベース)
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
-
4
ACCESSのフォームで次のレコードに移動しない方法を教えてください
その他(データベース)
-
5
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
6
スクロールバーをVBAで操作したい
Access(アクセス)
-
7
Access VBAでタブコントロールで選択するタブをしていするには。
Access(アクセス)
-
8
Access2010 「演算子がありません」エラー
その他(データベース)
-
9
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
10
実行時エラー 3020の対策
Access(アクセス)
-
11
アクセスVBA フォームのスクロールバーを動かす。
Visual Basic(VBA)
-
12
Access VBA Me.Requery レコードは削除されています エラー
その他(データベース)
-
13
Accessフォームに行番号を自動的に付与するには
Access(アクセス)
-
14
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
15
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
16
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
17
「RunSQL」と「Execute」の違い
Access(アクセス)
-
18
アクセス 壊れた? 「ファイルが見つかりません」
Access(アクセス)
-
19
2回目に画面のレコードセットの値が読めない
その他(データベース)
-
20
[VBA] ADOの Clone と AddNew
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access カレントレコードがあり...
-
2つの項目が重複するレコード...
-
Access VBA Me.Requery レコー...
-
3つ以上のテーブルをUNIONする...
-
データの二重表示の原因
-
Accessにインポートしたら並び...
-
SQLデータ修正時に『このレコー...
-
ManagementStudioからのデータ削除
-
Access 1レコードずつcsvで出力...
-
Accessでの排他制御
-
数百万件レコードのdelete
-
SQLiteで最も古いレコードのみ...
-
フォームで1レコード削除したの...
-
ACCESS 『DoCmd.OutputTo』に...
-
テーブルのレコード削除ができ...
-
Accessで更新した項目の抽出
-
Accessのフォームから削除した...
-
ACCESS【更新クエリの中断がで...
-
非連結サブフォームのレコード...
-
排他モードで開く場合は、どう...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
3つ以上のテーブルをUNIONする...
-
Accessにインポートしたら並び...
-
データの二重表示の原因
-
ACCESSのBookmarkプロパティの...
-
Access 削除クエリが重い
-
Access VBA Me.Requery レコー...
-
Access 1レコードずつcsvで出力...
-
2つの項目が重複するレコード...
-
数百万件レコードのdelete
-
SQLデータ修正時に『このレコー...
-
複数レコードをUPDATE文一文で...
-
SQLServerで同一条件レコードの...
-
Accessの重複クエリで最小以外...
-
Accessでレコードが更新された...
-
(ACCESS)並び替えをしないで...
-
テーブルのレコード削除ができ...
-
Accessで重複したデータを一件...
-
MySQL+PHP 特定レコードの更新...
-
曜日を格納する方法はどちらが...
-
ManagementStudioからのデータ削除
おすすめ情報