アプリ版:「スタンプのみでお礼する」機能のリリースについて

Accessでテーブルを元にしていない単独のフォームを作っています。
クエリで抽出条件をパラメータで入力させるのと同様に、日付を入力してレポートをプレビュー表示させるためのフォームです。
集計表を作成するレポートの名前が入ったチェックボックスがフォームにあり、クリックひとつですべてのチェックボックスにチェックを入れるボタンを設置しています。
(画面図:例)
(キャンセルなし集計ボタン)(キャンセルあり集計ボタン)
□報告書集計 □キャンセルあり報告書集計
□記録集計  □キャンセルあり記録集計
(キャンセルボタン) (レポート出力ボタン)
上図の左のふたつにはデフォルトでチェックが入っています。
キャンセルあり集計ボタン
・クリックすると右の2つにもチェックが入る。
キャンセルなし集計ボタン
・クリックすると右の2つのチェックが取れる。
これら2つの処理はVBAで Me!報告書キャンセルチェック.Value = True 等としていますが、「プロパティクリック時でエラーが発生しました」となり、うんともすんとも動きません。
レポート出力ボタン
・クリックするとそのときにチェックが入っている集計レポートをプレビュー表示する。ただしキャンセルあり~にチェックがある場合はそのすぐ左の集計は出力しない。
これもVBAで
If Me!報告書チェック.Value = True And Me!報告書キャンセルチェック.Value = True Then
DoCmd.OpenReport "報告書集計表(キャンセルあり)"
ElseIf Me!報告書チェック.Value = True Then
DoCmd.OpenReport "報告書集計表"
End If
等としてますが、やはりエラーが出ます。
VBが間違ってるのか、設定を変えてもそれをフォーム上に視覚的に反映させてないからか、それともソースとなるテーブルがないからでしょうか?

A 回答 (6件)

>>やはりエラーが出ます。


 何というエラーが出るかがわからないと想像できませんよ。自分も特にコードにおかしいものは見当たりません。
Me!○○

Me.○○
とした方が候補がリストで出て来るので、コントロール名のミスなどがあればすぐわかると思います。


>>それともソースとなるテーブルがないからでしょうか?

 これは関係ないです。
 フォームの「更新の許可」プロパティは「はい」になっていますか?

この回答への補足

回答ありがとうございます。
フォームのプロパティの設定を以下に示します。

フォームのプロパティ(ピクチャ等デザイン的なものは略・設定値のあるもののみ)
フィルタの使用 はい
既定のビュー 単票フォーム
ビュー設定 フォーム/データシート
更新・削除・追加の許可 (すべて)はい
データ入力用 いいえ
レコードセット ダイナセット
レコードロック しない
レコードセレクタ・移動ボタン いいえ
Tabキー移動 すべてのレコード
キーボードイベント取得 いいえ
タイマ間隔 0
コード保持 はい

その他略した設定
スクロールバー・区切り線・サイズ自動修正・自動中央寄せ・
ポップアップ・作業ウィンドウ固定・境界線スタイル・
コントロールボックス・最大化/最小化ボタン・?ボタン・
X軸・Y軸グリッド数・プリンタフォント・高速レーザー印刷

これでもまだ原因が特定できないでしょうか?
よろしくお願いします。

補足日時:2001/11/15 10:57
    • good
    • 0

>Me![報告書(EE・FF)キャンセルチェック].Value = True


>Me![報告書(EE・FF)チェック].Value = True
これを
Me("報告書(EE・FF)キャンセルチェック").Value = True
Me("報告書(EE・FF)チェック").Value = True
と変更してやってみてください。コントロールの名前にかっこは
使わない方が良いと思います。

それから、Me.Refresh は要らないと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
yanmaaさんのおっしゃる「日本語より英数字」だけでなく、
カッコも使わない方がいいんですか。
わかりました。次に作るデータベースからは、
このことを頭に入れておきます。
(そういえば、オフィシャルマニュアルでも、フォーム名とか
コントロール名は全部英数字だけだったなー)

Me.Refreshをはずしましたが、動きは同じでした。
Me("XXYYZZ")という表現もあるんですね。
本を読むか、ヘルプで調べておきます。

お礼日時:2001/11/19 10:48

確認ですがこっちはAccess2000なので違うかも知れませんが「コントロール名」?では無く「名前」だと思うのですが名前が「AAAAAAキャンセルチェック」だというのですか?



なお、コントロールソースの設定は関係ないですよ。

また、名前は日本語を使うより英数の方が良いでしょう。

更に、「参照設定」(OCXやDLL等)の設定が間違っているという事も無いですか?

Access2000の為詳しいメニューパスはご勘弁を!!

ついでに
Me!AAAAAAキャンセルチェック.Value = True

Me!AAAAAAキャンセルチェック = True
と書いてもOK

また、プログラムを1行にして(残りの行はコメントアウト)動作確認をしてみると良いでしょう。

エラーが無ければ次の1行と言う風にする。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
お返事が遅くなってすいません。
はい、名前が「AAAAAAキャンセルチェック」という類になっています。

こちらはAccess97です。だからかもしれませんが、
「参照設定」というのが何のことかはわかりません。
メニューパスというのもわかりません。ごめんなさい。

金曜日にフォームのプロパティで「データ入力用」というのを
「いいえ」から「はい」に変更してみると、作動してくれました。

そして今日それをまた「いいえ」に戻してみましたが、
正しく動いてくれています。

名前等は依然として日本語混じりで、そのままです。
結局何が原因だったのかつかめずじまいとなりました。

しかし、英数のほうがよいというアドバイスはありがとうございます。
やっぱりコンピュータの世界ではアルファベットのほうが
パソコンにはわかりやすいんですよね。

お礼日時:2001/11/19 10:41

困っているようなのでエラーが出ている所のソースを提示してください。



なお見られて困る内容は伏字で結構です。

あと、ソース(プログラム)を表示して「デバック」-「コンパイル」を実行すればエラーがある場所が分かると思います。

回答がないという事は状況理解出来ないとか、回答できないからだと思うのでもう少し噛み砕くとか詳細に説明するとかを試みるべきですよ。

適当な改行を入れるとかするよ読みやすくなります。

この回答への補足

アドバイスありがとうございます。
ソースはこんな感じです。

Private Sub 全帳票キャンセルありボタン_Click()
Me!AAAAAAキャンセルチェック.Value = True
Me!報告書キャンセルチェック.Value = True
Me![BBBBBBBBキャンセルチェック].Value = True
Me![CCCDDDD試験票キャンセルチェック].Value = True
Me![変更届キャンセルチェック].Value = True
Me![報告書(EE・FF)キャンセルチェック].Value = True
Me!AAAAAAチェック.Value = True
Me!報告書チェック.Value = True
Me![BBBBBBBBチェック].Value = True
Me![CCCDDDD試験票チェック].Value = True
Me![変更届チェック].Value = True
Me![報告書(EE・FF)チェック].Value = True
Me.Refresh
End Sub

(AAAAAA,BBBBBBBB,CCCDDDD,EE,FFは伏字)
コントロール名を[]でくくったりはずしたりして試みましたが、
同じエラーが出ました。

詳細にコードを示したり説明したいのはやまやまですが、
質問文は800字までしか書けないので、ある程度は省くか、
もしくはこのように補足で説明するしかないんです。
ご承知置き下さい。

コントロールソースとなるテーブルがないのは、関係ないのでしょうか?

補足日時:2001/11/15 10:17
    • good
    • 0

すみません、エラー内容がかかれてますね。

失礼しました。
コントロール名は、もう一度確認してみた方がいいかもしれません。
    • good
    • 0
この回答へのお礼

おかげさまで今日(11/19)解決しました。
VBAに原因がわからないので、CHOROLYNさんのアドバイスをもとに
プロパティをあたりました。
「データ入力用」の設定を「いいえ」から「はい」に
変えると、なぜか作動しました。

今日、またそれを「いいえ」に戻してみましたが、
正常に動いております。
結局何が原因だったのかつかめずじまいです。

ポイントについてですが、解決の糸口になった
プロパティをいじる考えを与えてくれたのはCHOROLYNさんなので、
「良回答」にいたします。
VBの記述の仕方に原因があったかもわかりませんが、
私が解決にいたるにあたって、もっとも早くその方向性へ導く
アドバイスをしていただいたので。
次点は、yanmaaさんに差し上げます。

「じゃ、結局こういうことだったのかな」という説明したがりそうな
方がいらっしゃるかもしれないので、今週末(11/23)まで
締めきらずに置いておきます。
23日の夕方に締めきりますので、補足、主張したい等のある方は
それまでにカキコお願いします。

お礼日時:2001/11/19 11:04

特別おかしなコードはないようですが・・・



とりあえずコントロール名を[]で括って見てください。

以前、コントロール名やフォーム名に全角文字を使っている場合に
[]で括らないとエラーが出た記憶が有ります。

この回答への補足

回答ありがとうございます。
一応コードを示します。

Private Sub 全帳票キャンセルありボタン_Click()
Me!AAAAAAキャンセルチェック.Value = True
Me!報告書キャンセルチェック.Value = True
Me![BBBBBBBBキャンセルチェック].Value = True
Me![CCCDDDD試験票キャンセルチェック].Value = True
Me![変更届キャンセルチェック].Value = True
Me![報告書(EE・FF)キャンセルチェック].Value = True
Me!AAAAAAチェック.Value = True
Me!報告書チェック.Value = True
Me![BBBBBBBBチェック].Value = True
Me![CCCDDDD試験票チェック].Value = True
Me![変更届チェック].Value = True
Me![報告書(EE・FF)チェック].Value = True
Me.Refresh
End Sub

(AAAAAA,BBBBBBBB,CCCDDDD,EE,FFは伏字)

[]でくくったりはずしたりして試みましたが、同じ結果になりました。

補足日時:2001/11/15 10:55
    • good
    • 0

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