位置情報で子どもの居場所をお知らせ

同じクエリなのにレコードによって三角マークになったり丸マークになったりします。
どちらも新規にレコードを投入できないのですが
(その理由はわかりますが)
マークの違いはなんでしょう?

「禁止マークのレコードと三角マークのレコー」の質問画像

A 回答 (1件)

> マークの違いはなんでしょう?



添付された画像の右側のものは、現在のレコード(CurrentRecord)を明示
するためのものです。
(Excelで、現在選択中のセルに相当する行及び列の標題部の色が変わるのと
 似たようなもの)

一方、左側のものは、おおもとのテーブルや、別のクエリ・フォーム(さらに、共有
されているデータベースなら他の端末の場合もあり)でのレコード編集により、
ロックを受けている(=編集できない)レコードの場合に表示されます。

※レコード編集時にロックを受けるレコードの範囲は、Accessの設定によって
  変わります。
  (「他人の編集中も編集可能」か「編集中のレコード(とその周辺)のみ編集不可」
  か「編集中は他人は全て編集不可」、と)
  メニューで「ツール(T)→オプション(O)」で『オプション』ダイアログを開き、
  『詳細』タブの右下の方にある『既定のレコードロック』、及び『レコード レベル
  でロックして開く(O)』で指定できます。
  (それぞれの設定の説明については、そちらを右クリックして表示されるヘルプ
  をご確認下さい(汗))
    • good
    • 0
この回答へのお礼

有難うございます。ヘルプも確認してみます。

お礼日時:2009/12/27 18:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

QAccessの画面更新を一時的に停止する方法。

こんにちは。
Accessの画面更新を一時的に停止する方法を捜しています。
ExcelのScreenUpdatingと同様な機能です。

VBAでの更新処理時に画面がチラチラと動くのを防止したいと思っています。
(Ver:Access2000)
ご存知の方宜しくお願い致します。

Aベストアンサー

Application.Echo False '画面の描画を止める

・・・処理を実行する・・・

Application.Echo True '画面の描画を行う

Qカレントレコードが無い事を判定させる方法

SQLを使ってmdb内のレコードセットを取得し、
無かったらエラーを返す、という処理を作成
する場合、カレントレコードが無い事を
判定するにはどうすれば良いでしょうか?
イメージは下記のような感じです。

レコードセット as DAO.Recordset

'レコードセット取得
 Set レコードセット = db.OpenRecordset(作成したSQL文)

'判定
If カレントレコード無 Then
MsgBox "エラーメッセージ"
Exit Sub
End If

Aベストアンサー

カレントレコード無は"レコードセット.RecordCount = 0"
で行けませんか?

QAccess サブフォームでの選択行の取得

こんにちは。

Access初心者です。

サブフォームでテーブルの項目を表示させていますが、
選択された行を取得する方法はありますか?
サボフォームの下の方に現在選択されているレコード数が表示されてますが、その値でかまいません。

調べているのですが、なかなか検討がつきません。
宜しくお願い致します。

Aベストアンサー

フォーム名がフォーム1、サブフォームコントロールの名前がサブフォーム1だとすると、

Forms!フォーム1!サブフォーム1.Form.CurrentRecord

で取得できます。
(「Forms」と「Form」がありますのでご注意下さい)


また、フォーム1にコードを記述する場合であれば

Me!サブフォーム1.Form.CurrentRecord

サブフォーム1へのコード記述であれば

Me.CurrentRecord

という構文によっても、それぞれ取得が可能です。

QACCESSでVBAから選択クエリの抽出条件を指定したい

選択クエリの抽出条件はデザインビューの「抽出条件」欄に直接条件式を書き込むのが普通だと思いますが、この条件式をVBAで記述することは出来るでしょうか?

DoCmd.RunSQL ではアクションクエリしか実行できないようだし、
DoCmsOpenQuery では引数に抽出条件を指定することが出来ないし困っています。

Aベストアンサー

おつかれさま~(^_^)
惜しいですね!
もう少しですね

さてさて、明日出張なので今日はたぶん最後のレスになってしまいますが、
ちなみに明日は返答できないのであしからず。。。

> Forms("サブフォーム").RecordSource = strSQL
駄目でしたか。。。

もし私が記載した内容で埋め込みのサブフォームを
利用しているのであれば
自分を参照する為に「Me」を使って

Me.埋め込みフォーム.Form.RecordSource = StrSQL
Me.埋め込みフォーム.Requery

に変更すれば動くと強く思います。
# 念じてます(^^)

ちなみに、
Me.
と打ち込んだ時点でオートコンプリート(名称あってるかな~)
機能が働いて参照できるオブジェクトが表示される
はずです。
その中にKojiさんが書いた埋め込みオブジェクトが
きっとあるはず
もしかすると"FormA"とか名前を付けたつもりでも
Visual Basic Editor君が気を利かせて
Form_formA
とかになってる場合があります。
最近やってないんでうろ覚えなんですが、こんな処を注意すれば大丈夫!

追伸
このコードって検索とかで使えますから
覚えておくときっと役に立ちますよ♪

おつかれさま~(^_^)
惜しいですね!
もう少しですね

さてさて、明日出張なので今日はたぶん最後のレスになってしまいますが、
ちなみに明日は返答できないのであしからず。。。

> Forms("サブフォーム").RecordSource = strSQL
駄目でしたか。。。

もし私が記載した内容で埋め込みのサブフォームを
利用しているのであれば
自分を参照する為に「Me」を使って

Me.埋め込みフォーム.Form.RecordSource = StrSQL
Me.埋め込みフォーム.Requery

に変更すれば動くと強く思います。
# 念じてま...続きを読む

QACCESSで条件によってフォーム上のフィールドの色を変更

一覧形式のフォームがあり、条件によって色を変更したいのですが、その条件というのが下記のような感じです。

フィールドA | フィールドB | フィールドC | チェックボックス
チェックボックスのチェックがあったら、フィールドA・B・Cの色をグレーにする。
チェックがなかったら白いまま。

というものです。
条件付書式だと、色を変更するフィールドそのもののデータを参照にしないといけないんですよね?
フォームオープンのところにVBAをかいてみたんですが、ひとつひとつは認識してないみたいで…。
どのようにすればいいのでしょうか?

よろしくお願いします。

Aベストアンサー

フォームのデザイン画面で3つのフィールドすべて選択し条件付書式画面を表示させる。
条件1のコンボで”式”を選択。
右側の欄に[チェックボックスのコントロール名]=True
と入力し、バケツアイコンでグレーを選択。
(もちろん1フィールドづつ設定してもOK)

QAccessのクエリで2つのフィールドが同条件の場合に結合したい

Accessのクエリで2つのフィールドが同条件の場合に結合したい

以下のようなテーブルが2つあって、その2つのフィールドが一致する場合につなげるクエリを作りたいと考えています。

【テーブル名:勤怠データ】
氏名│日付│出勤時刻
──────────────────
鈴木│2/1│8:01
鈴木│2/2│8:02
鈴木│2/3│8:03
高橋│2/1│9:01
高橋│2/2│9:02
高橋│2/3│9:03

【テーブル名:シフト】
氏名│日付│シフト
──────────────────
鈴木│2/1│A
鈴木│2/2│B
鈴木│2/3│A
高橋│2/1│B
高橋│2/2│C
高橋│2/3│B

【クエリ:シフト勤怠データ】←作りたいもの
氏名│日付│シフト│出勤時刻
──────────────────
鈴木│2/1│A│8:01
鈴木│2/2│B│8:02
鈴木│2/3│A│8:03
高橋│2/1│B│9:01
高橋│2/2│C│9:02
高橋│2/3│B│9:03

氏名と日付のフィールドが一致するときに結合させたいのですが、
デザイン画面でつなげればいいのかわかりません。
ご回答よろしくお願い致します。

Accessのクエリで2つのフィールドが同条件の場合に結合したい

以下のようなテーブルが2つあって、その2つのフィールドが一致する場合につなげるクエリを作りたいと考えています。

【テーブル名:勤怠データ】
氏名│日付│出勤時刻
──────────────────
鈴木│2/1│8:01
鈴木│2/2│8:02
鈴木│2/3│8:03
高橋│2/1│9:01
高橋│2/2│9:02
高橋│2/3│9:03

【テーブル名:シフト】
氏名│日付│シフト
──────────────────
鈴木│2/1│A
鈴木│2/2│B
鈴木│2/3│A
高橋│2/1│B
高橋│2/2│C
高橋│2/3│B

【クエリ:シフト...続きを読む

Aベストアンサー

クエリをデザインで作成する時、テーブル「勤怠データ」「シフト」を表示しておきます。

テーブル「勤怠データ」上の「氏名」をドラッグして、テーブル「シフト」の「氏名」にドロップします。
すると、「氏名」「氏名」に線が表示されます。
「日付」も同様にドラッグ&ドロップして線を表示させます。

その後、
以下の順番でダブルクリックしていきます。
「勤怠データ」上の「氏名」
「勤怠データ」上の「日付」
「シフト」上の「シフト」
「勤怠データ」上の「出勤時刻」

終わったら、データシート表示にしてみます。

良かったら、「シフト勤怠データ」名で保存します。


の手順で良かったような気がします。

QAccessでレポート内の繰り返しレコードの行数を固定したいです。

Accessでレポート内の繰り返しレコードの行数を固定したいです。

Access2007を使っています。

社内のフォーマットに合わせた物品購入申請書のようなものを
Accessのレポート機能を使って印刷したいと思っています。

大きく2つのテーブルから構成されます。

 (申請書テーブル)
  1文書に1レコードが該当するもの
  書類番号、申請日や申請者名、購入目的等が入ります。

 (購入物品テーブル)
  1文書に複数のレコードが該当するもの
  購入する物品の名前や金額等が入ります。
  書類番号を外部キーとして申請書テーブルとリンクします。


レポート機能で、この二つのテーブルを対象として、
(正確には、申請書テーブルはフォーム上で開いているレコードのみを対象と
 するために、クエリを仲介して)
購入物品は繰り返しにするようにすることで、ひととおり形にはなったのですが、
1つうまくいかないことがあります。

社内のもともとの手書き用フォーマットには、購入物品の記入枠が20行あります。
これは多めにつくってあるので、当然購入物品数が20以下の場合は、残りの行は
空白になっています。
しかし、Accessのレポートで作ったものは空白行がなく、おかげで購入物品件数
により「詳細」と「フッタ」の間の不自然な空白が広くなったりします。

フッタと言っても、内容的には、「上記物品の購入云々~、お願い致します。」
とかサインするエリアとかですので、繰り返しが終わったらすぐに開始をして
ほしいのです。

購入物品の数に関わらず全体の行数を20に固定する方法はありますでしょうか?

Accessでレポート内の繰り返しレコードの行数を固定したいです。

Access2007を使っています。

社内のフォーマットに合わせた物品購入申請書のようなものを
Accessのレポート機能を使って印刷したいと思っています。

大きく2つのテーブルから構成されます。

 (申請書テーブル)
  1文書に1レコードが該当するもの
  書類番号、申請日や申請者名、購入目的等が入ります。

 (購入物品テーブル)
  1文書に複数のレコードが該当するもの
  購入する物品の名前や金額等が入ります。
  書類番号...続きを読む

Aベストアンサー

レコードがない場合も用紙の最後まで罫線を出力する
http://hatenachips.blog34.fc2.com/blog-entry-17.html

レポートに関してはトップクラスの hatena さんのページです。

参考URL:http://hatenachips.blog34.fc2.com/blog-entry-17.html

Qレコードロック情報の解除方法を教えてください。

windows-XP、officeはAccess2003です。

共有フォルダ上で他のPCでも開いて使用しています。

いつものように、メンテをして閉じたのですが、「Access レコード ロック情報」のファイルが消えません。

ファイルを全て閉じても、このファイルのユーザーが自分になったままになっています。
レコードロック情報のファイルを消したいのですが、どうしたらよいでしょうか??


どなかた解決して頂けたらと思います。
宜しくお願い致します。

Aベストアンサー

Access でそのmdb(mde?)ファイルを開いて閉じても消えない。
Delete キーでも消えない。
他にファイルを開いている人は絶対にいない。
のなら、質問者さん以前の使用者のAccessがきちんと終了しなかったため?
かもしれません。

ldb ファイルが残ったままでも不都合が発生する事はないので
気にしなくとも良いのでは?と思います。
どうしても消したいのなら、質問者さんの権限にもよりますが
ldb ファイルを右クリックして
プロパティ→セキュリティタブ→詳細設定ボタン→所有者タブ→編集ボタン
から所有者の変更を行って、所有者を自身に替えます。
その後にldb ファイルを Delete キーで削除してみてください。

質問者さんにその共有フォルダ内で削除権限が無い、
ファイルサーバーに軽微なエラーが発生している、
ファイルサーバーのOSがwindows系では無い・・などの場合は
削除できない(上記操作が不可)かもしれません。

まぁ明日の夜か、あるいは二・三日掛かるかもしれませんが
消えてくれると思います。気にしないことです。
ただ、これが、ずーーーーーーと残ったり、頻発するようでしたら
ファイルサーバーの管理者と相談してみてください。

蛇足ですが、ldb ファイルをメモ帳で開くと
どのパソコンで開いている(いた?)かが分かります。

Access でそのmdb(mde?)ファイルを開いて閉じても消えない。
Delete キーでも消えない。
他にファイルを開いている人は絶対にいない。
のなら、質問者さん以前の使用者のAccessがきちんと終了しなかったため?
かもしれません。

ldb ファイルが残ったままでも不都合が発生する事はないので
気にしなくとも良いのでは?と思います。
どうしても消したいのなら、質問者さんの権限にもよりますが
ldb ファイルを右クリックして
プロパティ→セキュリティタブ→詳細設定ボタン→所有者タブ→編集ボタン
から所有者の変更...続きを読む

Qサブフォームに対してGoToRecordするには?

フォームに対してRequeryすると先頭のレコードへ移動してしまうので
Requeryする前のレコードの番号を取得して
Requery後にそのレコード番号へ移動したいのですが

Sub test()
i = Forms("Form").Controls("SubForm").Form.CurrentRecord
Forms("Form").Controls("SubForm").Requery
DoCmd.GoToRecord acActiveDataObject, Forms("Form").Controls("SubForm"), acGoTo, i
End Sub

これをすると、実行時エラー2498
指定した式は、いずれかの引数とデータ型が対応していません。
になりますが、
どこがおかしいのでしょうか?

Aベストアンサー

【要旨】
サブフォームのレコード移動では、対象サブフォームは引数で指定するのではなく、
SetFocusメソッドで移動後、引数を省略したGotoRecordを使用します:
  Forms("Form").Controls("SubForm").SetFocus
  DoCmd.GotoRecord , , acGoto, i

但し、「Requery前後でのレコード移動の回避」が目的の場合は、Requeryの
対象を「親フォームまたはサブフォームのFormオブジェクト」ではなく「サブフォーム
コントロール」とすればOkです。
 <現状・例1>
  Forms("Form").SetFocus
  DoCmd.Requery
 <現状・例2>
  Forms("Form").Requery
 <現状・例3>
  Forms("Form").Controls("SubForm").Form.Requery
 <代替策>
  Forms("Form").Controls("SubForm").Requery
  ※「現状・例3」との違い(→途中の「.Form」の有無)に注意。


【詳細】
> 実行時エラー2498

このエラーの直接の原因は、GotoRecordメソッドの第2引数に指定している
「Forms("Form").Controls("Subform")」の部分です。

ここに指定するのはオブジェクト名になりますが、そのデータ型は文字列型です。
一方、「~.Controls(~)」の形で指定した場合、取得できるのは
 a)オブジェクトそのもの
 b)そのオブジェクトのデフォルトプロパティ
のどちらかです(→状況によって変化します)。
(例えばテキストボックスなら、TextBoxオブジェクトまたはValueプロパティの値)

サブフォームのデフォルトプロパティは調べていませんが(汗)、少なくとも文字列
型のプロパティではないため、「型が一致しない」とのエラーとなります。
サブフォームのコントロール名を取得する場合は、
  Forms("Form").Controls("SubForm").Name
というように、Nameプロパティを明示的に指定する必要があります。

ただ、「サブフォームのレコード移動」の場合、明示的に「Name」プロパティを
指定しても解決には至りません(汗)
これは、GotoRecordメソッドの第2引数には、直接開いているオブジェクトの
名前のみが有効なためで、サブフォームを直接的に指定することはできない、
ということです。
(注:Microsoftの資料を探したわけではなく、経験則から記述していますので、
 私の勘違いでしたらご容赦願います(汗))

サブフォームのレコード移動には、冒頭に記述したとおり、「フォーカスの移動」と
「一部の引数を省略したGotoRecord」を使用します:
  Forms("Form").Controls("SubForm").SetFocus
  DoCmd.GotoRecord , , acGoto, i

なお、これも冒頭に書きましたが、サブフォームのRequeryの仕方には幾つか
方法がありますが、Requeryの対象を「コントロールとしてのサブフォーム」にすれば、
レコード移動が発生しませんので、GotoRecord自体が不要になります。
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsFrmHowToRequeryAndReturn.html

【要旨】
サブフォームのレコード移動では、対象サブフォームは引数で指定するのではなく、
SetFocusメソッドで移動後、引数を省略したGotoRecordを使用します:
  Forms("Form").Controls("SubForm").SetFocus
  DoCmd.GotoRecord , , acGoto, i

但し、「Requery前後でのレコード移動の回避」が目的の場合は、Requeryの
対象を「親フォームまたはサブフォームのFormオブジェクト」ではなく「サブフォーム
コントロール」とすればOkです。
 <現状・例1>
  Forms("Form").SetFocus
  DoCmd.Requery
 <現...続きを読む


人気Q&Aランキング