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が間違ってるのか、設定を変えてもそれをフォーム上に視覚的に反映させてないからか、それともソースとなるテーブルがないからでしょうか?

このQ&Aに関連する最新のQ&A

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に関連する人気のQ&A

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

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

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

QACCESS2003のデータアクセスページの使い方について

イントラ内でACCESS2003のデータアクセスページを使いたい。

1.ACCESS2003のデータアクセスページを作成しました。
2.そのMDBファイルと、データアクセスページ(htmファイル)を、WINDOWS2000ServerのInetpub内のwwwrootフォルダの中へ入れました。
3.ここにはイントラ内のHPなどを置いています。(普通に見れています。)
4.クライアントから、データアクセスページのhtmファイルを見に行くと「データソースログオン」が立ち上がります。(パスワードを設定しています。)
5.パスワードを入れるとデータアクセスページ(htm)から、通常のアクセスのフォームのごとくデータ入力が出来る予定なのですが(泣)できません。(泣)

で、悩んでおります。

ACCESS2003のMDBファイルとデータアクセスページ(HTMファイル)をサーバーのwwwrootへ置いただけでは、データアクセスページを通してmdbファイルへの入出力は不可能なのでしょうか?

Aベストアンサー

MDBに接続されたAccessプロジェクトを開いている場合データアクセスページは自動的にそのデータベースに接続されてそのパスがデータアクセスページのConnectionString プロパティに設定されます。
ページを作成した後でデータベースを移動またはコピーした場合はConnectionString プロパティに設定されているパスを更新して新しい保管場所を設定する必要がありますがどうなっていますか?
そこを確認してみてください。

QAccessで、チェックボタンを使用し、レポート表示を変更する方法を教えてください。

Access初心者です。

2年間の、月ごとに集計しているあるデータがあります。
19年と18年の各月ごとに計24月分のレポートを作りました。

フォームに「1月」「2月」・・・と12月までのボタンを12個作成しました。
これをクリックすると、19年の各月のレポートが表示されるようにしました。
フォーム画面の上の方にチェックボタン1つ作り、ここにチェックを入れて、
各月のボタンをクリックすると18年の対象月データが出るようにしたいのですが、
どのようにしたら良いのでしょうか?

Aベストアンサー

無理だと思います。
そもそも、月毎にテーブルをわけるという構造が適正ではありませんね。
キーに年月を持って、年月選択でレポートを出力できるようにすべきです。
レポートも一つで済むし。

Qホームページ移転に伴う.htaccessの使い方ですがアップロードして

ホームページ移転に伴う.htaccessの使い方ですがアップロードして削除できなくなる事ないですか??また、さくらサーバーは.htaccess使えますか??

Aベストアンサー

.htaccessだけではなく、
ファイルはパーミッションによっては一旦削除できなくなると思いますよ・・・
使えないのにアップすると削除出来ないとか。

>さくらサーバーは.htaccess使えますか??
使えます。
.htaccessを使えない有料サーバってあるのでしょうか?・・・

Qシートのボタンからフォーム出した場合、チェックボタンの動作がうまくいきません

フォーム上の2つのチェックボタンをトグルさせたいのですが、シート上に設定したコマンドボタンからフォームを表示させると、トグルがうまくいきません。
尚、メニューからフォームを表示させた場合、正しく動作します。
回避させる手段はあるでしょうか?
これはエクセルの仕様なのでしょうか?
Excel2003です(英語版)。英語版Windows7Proです。

フォームのVBA
Private Sub UserForm_Initialize()
  CheckBox1.Value = True
  CheckBox2.Value = False
End Sub
Private Sub CheckBox1_Click()
  CheckBox1.Value = True
  CheckBox2.Value = False
End Sub
Private Sub CheckBox2_Click()
  CheckBox2.Value = True
  CheckBox1.Value = False
End Sub

シートのVBA
Private Sub CommandButton4_Click()
  sb_UserForm1Show
End Sub

標準モジュール
Sub sb_MenuCreate()
  sb_MenuDelete
  Dim myMnu As Object
  Dim Cap_P As String
  Cap_P = "Prototype"
  Set myMnu = CommandBars("Worksheet menu bar").Controls.Add(Type:=msoControlPopup, Before:=3)
  With myMnu
    .Caption = Cap_P
  End With
  sb_Menu01 Cap_P, "Delete This Menu", "sb_MenuDelete"
  sb_Menu01 Cap_P, "RecoverTest", "RecoverTest"
  sb_Menu01 Cap_P, "Clear DataBase", "sb_ClearDatabaseConf"
  sb_Menu01 Cap_P, "Show All Data", "sb_ShowAllData"
  sb_Menu01 Cap_P, "Remove Autofilter", "sb_RemoveAutofilter"
  sb_Menu01 Cap_P, "Add Autofilter", "sb_AddAutofilter"
  sb_Menu01 Cap_P, "Remove Sub Total", "sb_RemoveSubtotal"
  sb_Menu01 Cap_P, "Add Sub Total", "sb_AddSubtotal"
  sb_Menu01 Cap_P, "Load Form", "sb_UserForm1Show"
  sb_Menu01 Cap_P, "Import to FishDataBase", "sb_Main01"
End Sub

Sub sb_Menu01(Cont_P As String, Cap_P As String, On_Act As String)
'Menu Create submodule
  With CommandBars("Worksheet menu bar").Controls(Cont_P)
    .Controls.Add(Type:=msoControlButton, Before:=1).Caption = Cap_P
    .Controls(Cap_P).OnAction = On_Act
  End With
End Sub

Sub sb_UserForm1Show()
  UserForm1.Show
End Sub

フォーム上の2つのチェックボタンをトグルさせたいのですが、シート上に設定したコマンドボタンからフォームを表示させると、トグルがうまくいきません。
尚、メニューからフォームを表示させた場合、正しく動作します。
回避させる手段はあるでしょうか?
これはエクセルの仕様なのでしょうか?
Excel2003です(英語版)。英語版Windows7Proです。

フォームのVBA
Private Sub UserForm_Initialize()
  CheckBox1.Value = True
  CheckBox2.Value = False
End Sub
Private Sub CheckBox1_Click()...続きを読む

Aベストアンサー

そのような処理に適したオプションボタンがあるにも拘らず
なぜ、チェックボックスを使うのか、ん? という感じではありますが、、、

ま、それは置いといて。。。。

提示のコードではCheckBoxのClickイベントが発生し続けるので
質問の動作は当たり前の動作になります。


 Private Sub UserForm_Initialize()
   CheckBox1.Value = True  ●CheckBox1のClickイベント発生

 Private Sub CheckBox1_Click()
   CheckBox1.Value = True  ●CheckBox1のClickイベント発生


▼~▲のClickイベントが発生し続けるのでストップしているように見えるわけです。

これは、CheckBox1,2のClickイベントの最初に、
MsgBox "box1"など入れてみれば確認できますね。

で、CheckBoxのClickイベントを止めてやればいいわけですが、
UserFormには、Application.EnableEventsなどのメソッドがないので
普通はフラグを使ったりしますが、
今回の場合は、Changeイベントの性質を利用してもできます。

●Changeイベントを使う方法
'--------------------------------------------
Private Sub UserForm_Initialize()
   CheckBox1.Value = True
End Sub
'-------------------------------
Private Sub CheckBox1_Change()
   CheckBox2.Value = Not CheckBox1.Value
End Sub
'-------------------------------
Private Sub CheckBox2_Change()
   CheckBox1.Value = Not CheckBox2.Value
End Sub
'---------------------------------------------

UserForm_Initializeでチェックするのは、CheckBox1だけで十分だと思います。

 
●また、フラグを使う方法は、Clickイベントの部分で
  If Flag = True Then Exit Sub
などとしてClickイベントの処理をジャンプする方法です。
これはご自分で考えてみてください。


最初でも言いましたが、
今回のような処理は、オプションボタンを使うべきかと。
ま、いろいろ理由はあるのでしょうが。。。
以上です。

そのような処理に適したオプションボタンがあるにも拘らず
なぜ、チェックボックスを使うのか、ん? という感じではありますが、、、

ま、それは置いといて。。。。

提示のコードではCheckBoxのClickイベントが発生し続けるので
質問の動作は当たり前の動作になります。


 Private Sub UserForm_Initialize()
   CheckBox1.Value = True  ●CheckBox1のClickイベント発生

 Private Sub CheckBox1_Click()
   CheckBox1.Value = True  ●CheckBox1のClickイベント発生


▼~▲のClickイベントが発...続きを読む

QAccessで作成したテーブルのOLEオブジェクトの使い方

Accessで作成したテーブルにデータ型(OLEオブジェクト型)で画像を取り込みできるようにしました。
取り込みした画像を開くためのフォームを作成して画像を開けるようにしました。
下記の内容です。

Private Sub Form_Open(Cancel As Integer)
Form.Caption = ProgName
End Sub

しかし「ビットマップ形式」ですと問題なく開くのですが、「JPG形式」ですと開けないのです。取り込みしたAccessテーブルのフィールドから直接だとひらけます。
Accessで作成したフォームから、「JPG形式」の画像を開くにはどうすればよろしいですか?
また、画像を1000件ほど取り込みすると大きいデータベースになってしまいます。Accessのデータベースのサイズは制限があるのかしら?
アドバイスいただけれは幸いです。

Aベストアンサー

Access のバージョンは?
んで Web で検索する努力はしましょうよ。
丸 1日ぐらい検索しっぱなしで悩まないと。

Google「access ole jpeg」で検索
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=access+ole+jpeg&num=50

Access 2003 では以下のような制限があるようです。
■ Access 2003 で OLE オブジェクトとして JPEG および GIF 画像を取り扱う場合の注意事項
http://support.microsoft.com/kb/884484/ja

■ OLE オブジェクト型のフィールドに格納されているイメージが正しく表示されません
http://support.microsoft.com/kb/832508/ja

解決策としては JPEG を開ける OLE コンテナになるアプリケーションをインストールしておく。

Google「Access データベース サイズ 制限」で検索
http://www.google.com/search?hl=ja&num=50&q=Access+%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9+%E3%82%B5%E3%82%A4%E3%82%BA+%E5%88%B6%E9%99%90&lr=lang_ja

Access のバージョンは?
んで Web で検索する努力はしましょうよ。
丸 1日ぐらい検索しっぱなしで悩まないと。

Google「access ole jpeg」で検索
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=access+ole+jpeg&num=50

Access 2003 では以下のような制限があるようです。
■ Access 2003 で OLE オブジェクトとして JPEG および GIF 画像を取り扱う場合の注意事項
http://support.microsoft.com/kb/884484/ja

■ OLE オブジェクト型のフィールドに格納されているイメージが正...続きを読む

QAccessレポート 複数条件での集計

どなたかお知恵をお貸しください。


テーブル名:T_当社
フィールド:商品管理番号(テキスト)、入庫日(日付)、数量(数値)、金額(数値)、伝票番号(テキスト)

テーブル名:T_取引先
フィールド:商品管理番号(テキスト)、入庫日(日付)、数量(数値)、金額(数値)

クエリ名:Q_商品一致
元テーブル:[T_当社]、[T_取引先]
フィールド:商品管理番号(テキスト)、入庫日(日付)、数量(数値)、金額(数値)、伝票番号(テキスト)
抽出条件:[当社]テーブルの[商品管理番号]と[取引先]テーブルの[商品管理番号]が一致するものだけ


データベース構成は以上の通りです。下記のようなレポートを作成したいのです。

条件1:[入庫日]を月単位でグループ化し、[数量][金額]を集計する。----- レポート上の表示項目名[数量][金額]
条件2:[伝票番号]の値が[3U]で始まるものと、[3N]で始まるものは、 条件1の[数量]と[金額]から差し引いて、別列に表示させる。
※3U、3Nのデータに関しては、[0]が表示されず、空白でもOK。


自分でしたのは、下記の通りです。
1.Q_商品一致クエリで、[伝票番号]が、3Uと3Nで始まるレコードを除外。
2.Q_商品一致クエリを元に、[伝票番号]が、3Uで始まるレコードだけを抽出するクエリ[Q_3U]を作成。
3.Q_商品一致クエリを元に、[伝票番号]が、3Nで始まるレコードだけを抽出するクエリ[Q_3N]を作成。

4.Q_商品一致クエリを元に、[入庫日]でグループ化したクエリ[Q_商品一致(月別)]を作成。
 Q_3U、Q_3Nも同様に、[入庫日]でグループ化したくエリを作成。

(4)で作成した3つのクエリを、1つの選択クエリにしてみたのですが、これだと、例えば、
4月度にしか[3N]データがない場合でも、5月度以降の行にも、4月度の[3N]データの値が繰り返し表示されてしまいます。

どなたかお知恵をお貸しください。


テーブル名:T_当社
フィールド:商品管理番号(テキスト)、入庫日(日付)、数量(数値)、金額(数値)、伝票番号(テキスト)

テーブル名:T_取引先
フィールド:商品管理番号(テキスト)、入庫日(日付)、数量(数値)、金額(数値)

クエリ名:Q_商品一致
元テーブル:[T_当社]、[T_取引先]
フィールド:商品管理番号(テキスト)、入庫日(日付)、数量(数値)、金額(数値)、伝票番号(テキスト)
抽出条件:[当社]テーブルの[商品管理番号]と[取引先]テーブルの[商品管理番号]...続きを読む

Aベストアンサー

入庫日(日付)を使って
入庫月:Format([入庫日],"yyyymm")
で2006/02/21を200602という文字列に置き換えてグループ化すればいいのでは?
1,2,3のクエリを同時に行うのであれば
小計:Switch(Left([伝票番号],2)="3U",0,Left([伝票番号],2)="3N",0,True,[金額])
3U:IIF(Left([伝票番号],2)="3U",[金額],0)
3N:IIF(Left([伝票番号],2)="3N",[金額],0)
で金額を別にして合計する。

QAccess2000でFTPの使い方について。

Access2000のフォームから、実行のボタンをクリックするとFTPサーバに接続→ファイル取得→Accessテーブルに取込→FTPサーバのファイル削除→FTPサーバの接続切断という処理をしたいのですがどのようにしたらよいかわかりません。説明不足だとは思いますが、アドバイスを宜しくお願い致します。

Aベストアンサー

ちなみに先ほどのFTPサンプルは、BASP21をインストール後、サンプルのコードを新規モジュールに貼り付けて(たとえば以下をまるごと)実行すればAccessでもそのまま動きます。

sub file_download()

Dim ftp As Object, rc As Long, v As Variant, v2 As Variant
Dim ctr As Long

Set ftp = CreateObject("basp21.FTP")
ftp.OpenLog "c:\temp\log.txt"
rc = ftp.Connect("ftp.microsoft.com", "anonymous", "")
If rc = 0 Then
v = ftp.GetDir("bussys/winnt/winnt-public", 2) ' ディレクトリ一覧(詳細)
If IsArray(v) Then
For Each v2 In v
Debug.Print v2
Next
End If
v = ftp.GetDir("bussys/winnt/winnt-public") ' ディレクトリ一覧(ファイル名のみ)
If IsArray(v) Then
For Each v2 In v
Debug.Print v2
Next
End If
rc = ftp.GetFile("bussys/winnt/winnt-public/*", "c:\temp") 'ファイル受信

end sub

実行には20秒ほどかかります。
実行前にはCドライブにtempというフォルダを作っておいてください。

ちなみに先ほどのFTPサンプルは、BASP21をインストール後、サンプルのコードを新規モジュールに貼り付けて(たとえば以下をまるごと)実行すればAccessでもそのまま動きます。

sub file_download()

Dim ftp As Object, rc As Long, v As Variant, v2 As Variant
Dim ctr As Long

Set ftp = CreateObject("basp21.FTP")
ftp.OpenLog "c:\temp\log.txt"
rc = ftp.Connect("ftp.microsoft.com", "anonymous", "")
If rc = 0 Then
v = ftp.GetDir("bussys/winnt/winnt-public", 2) ' ディレクトリ一...続きを読む

QAccess2002の集計レポート?

商品コード別の集計レポート作成において、デザイビューの「商品コード フッター」部分で「配送の有無(Yes/No型)」のフィールドで「配送有り」をカウントしたいのですが、上手くいきません・・・?

=Count(IIf([配送の有無]=Yes,1,0)
で表示させると
・Yes
との結果です。

ご教示ください。

Aベストアンサー

>「商品コード フッター」部分で

商品コードフッター部分にて、テキストボックスを配置されているんですよね?
でしたら、そのテキストボックスのコントロールソースに
#1,#2 に表示されている式を代入します
以上で表示されると思われますが...

もしかして、テキストボックスの書式が「Yes/No」になっているのでは?
書式は「標準」か、「数値」が良いような

下記式でも可能です
=DCount("*","テーブル名","[配送の有無] = true")

QRuby on Rails 「attr_accessor」 の使い方に

Ruby on Rails 「attr_accessor」 の使い方について

こんにちは。

現在、Ruby on Railsで登録画面を作成しているのですが、attr_accessorで定義した項目に対して、validationのチェックを行うと、問題が起きてしまいました。

attr_accessorで定義した項目は、DB登録の対象ではないのですが、lengthのチェック等を行う必要があり、validates_length_of等を使って入力チェックを行っています。

問題になったのは、入力があったときだけチェックをかけたいのに、入力がなくてもチェックがかかってしまうという状態になってしまうことです。
「:if => 項目?」を書いてみると、「undefined method」のエラーがでてしまいます。

どなたか対応策の分かる方がおられましたらご教授いただけないでしょうか?

下記に実際の問題箇所のモデルクラスのソースを書いておきます。

 class User < ActiveRecord::Base

   attr_accessor :NEW_USER_PW ← 追加したアクセサ

   # 追加したアクセサに対するチェック
   validates_length_of :NEW_USER_PW, :minimum=>4, :message=>"は%d桁以上を設定してくださ            
    い。", :on => :update, :if => :NEW_USER_PW?

 end

上記のチェック内の「:if => :NEW_USER_PW?」で落ちてしまいます。
入力がないのにチェックに引っかかるとまずいので、入力がないときだけ上記チェックを行えれば良いのですが・・・。

どうぞ宜しくお願い致します。

Ruby on Rails 「attr_accessor」 の使い方について

こんにちは。

現在、Ruby on Railsで登録画面を作成しているのですが、attr_accessorで定義した項目に対して、validationのチェックを行うと、問題が起きてしまいました。

attr_accessorで定義した項目は、DB登録の対象ではないのですが、lengthのチェック等を行う必要があり、validates_length_of等を使って入力チェックを行っています。

問題になったのは、入力があったときだけチェックをかけたいのに、入力がなくてもチェックがかかってしまうという状...続きを読む

Aベストアンサー

attr_accessor :NEW_USER_PWを定義したからといって、
NEW_USER_PW?メソッドが定義されるわけではりません。
attr_accessorはゲッターとセッターメソッドを作るだけです。
それ以外の論理値を返すようなメソッドは自作しなければなりません。

NEW_USER_PW?メソッドを作成されていないのなら、「undefined method」が
出てしまうのは当然です。

質問にあるように、「入力があった場合のみ」とありますので、
NEW_USER_PW?メソッドを下記のように実装すればチェック可能です。

def NEW_USER_PW?
@NEW_USER_PW.size > 0
end

また、ifにはprocオブジェクトを渡すこともできますので、
:if => Proc.new{|u| u.NEW_USER_PW.size > 0}
と書いてもいいでしょう。


NEW_USER_PWというインスタンス変数はすべて大文字を使用されていますが、
見る人によっては定数と勘違いします。
変数であれば小文字表記を利用するほうが良いかもしれません。

attr_accessor :NEW_USER_PWを定義したからといって、
NEW_USER_PW?メソッドが定義されるわけではりません。
attr_accessorはゲッターとセッターメソッドを作るだけです。
それ以外の論理値を返すようなメソッドは自作しなければなりません。

NEW_USER_PW?メソッドを作成されていないのなら、「undefined method」が
出てしまうのは当然です。

質問にあるように、「入力があった場合のみ」とありますので、
NEW_USER_PW?メソッドを下記のように実装すればチェック可能です。

def NEW_USER_PW?
@NEW_USER_PW.s...続きを読む

QAccessのレポート上でのデータ抽出とその集計

Accessで、たとえば、

商品 個数 金額
A   123  1230
B    2   330
A   12   20

というようなデータで、金額をグループフッターおよび
ページフッターで合計されるようにつくっているレポートが
あります。

このレポートに、上記の商品AとBそれぞれにわけた場合の
合計も、グループフッターに表示したいのですが、
うまくできずに悩んでいます。

どういった数式を入れたら上記のリストからAとBを区別して
合計を出せるようにできるのでしょうか?

教えてください。
よろしくお願い致します。

Aベストアンサー

どのようにうまくいかないのか解らないので、なんといって良いのか迷いますが、基本的にページフッターで合計を出している要領でいいと思いますよ。

グループの合計を表示するテキストボックスのプロパティに集計実行という項目があるので、そこをグループ全体にするといいと思います。

それでもうまくいかない場合は、データのところにそれぞれ、以下のように入れてみてください。
=sum([個数])
=sum([金額])


人気Q&Aランキング

おすすめ情報