Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


443 / 500 ページ ←次へ | 前へ→

【4309】Re:別ファイルのテーブルの操作
お礼  なっちん  - 05/2/1(火) 0:53 -

引用なし
パスワード
   ▼Gin_II さん:
>対象はmdbファイルですよね?
>○クエリの外部データベースプロパティを使う
>○リンクテーブルを使う
>○DAOのOpenDatabase メソッドを使う

いつもありがとうございます。
・対象はmdbファイルです。
・「外部データベースプロパティ」という機能を知りませんでした。調べてみます。
・リンクテーブルでも、テーブル内の操作ができるんですね。知りませんでした。
・OpenDatabase メソッドを使用して、Select文でmdbファイルを指定すればよかったんですね。

一番最後の「OpenDatabase メソッド」を使ってみようと思います。
ありがとうございました。
・ツリー全体表示

【4307】MaskEdBoxへの入力について
質問  sumi  - 05/1/31(月) 16:13 -

引用なし
パスワード
   よろしくお願いします。
MaskEdBoxにて日付の入力をおこないたいのですが
入力する日付を間違えたときなどに入力した内容を削除して
入力しなおそうとすると前回入力した内容が勝手に入力されてしまいます
たとえば
2004/01/31と入力したものを2005/01/31と打ちなおそうとした場合に勝手に
2004の4だけを消してテンキーの5を押しても2004/01/31と入力されてしまいます
どうすれば前回入力した内容が表示されないようにできますでしょうか?
・ツリー全体表示

【4306】Re:フォームの重ね表示について
お礼  VBAビギナ  - 05/1/31(月) 12:31 -

引用なし
パスワード
   ▼Gin_II さん:
>>元フォーム:一覧表示
>>開くフォーム:個別詳細編集
>>という画面構成でして、編集後の結果を即時反映させたいのですが…
>>
>>フォームのクローズの仕方等に何か工夫が必要なのでしょうか?
>
>個別詳細編集フォームの閉じるときに、一覧表示フォームの再クエリをしてやれば
>大丈夫だと思います。
>
>Forms!一覧表示.Requery


ありがとうございます.
早速試してみます
・ツリー全体表示

【4305】Re:別ファイルのテーブルの操作
回答  Gin_II  - 05/1/31(月) 0:26 -

引用なし
パスワード
   >「ADO」を使用しないで、他のファイルのテーブルを削除したり、レコードを削除するのは
>可能なのでしょうか?もし、可能であるならば、その方法もご教授願います。

可能です。
対象はmdbファイルですよね?

○クエリの外部データベースプロパティを使う
○リンクテーブルを使う
○DAOのOpenDatabase メソッドを使う

など。
・ツリー全体表示

【4304】Re:Accessの終了
お礼  hiro  - 05/1/30(日) 22:56 -

引用なし
パスワード
   なっちん さん:ありがとうございました。
>DoCmd.Quit
でうまく終了できました。
すいません、もっと勉強します。

>Access初心者なので詳しくは分かりませんが、以下のコードを使用するだけでは駄目なのでしょうか?
>
>DoCmd.Quit
・ツリー全体表示

【4303】別ファイルのテーブルの操作
質問  なっちん  - 05/1/30(日) 21:53 -

引用なし
パスワード
   平素よりお世話になっております。
一点質問があります。
Accessのversionは、2000及び2.0です。

*質問*
「ADO」を使用しないで、他のファイルのテーブルを削除したり、レコードを削除するのは可能なのでしょうか?もし、可能であるならば、その方法もご教授願います。
・ツリー全体表示

【4302】Re:Accessの終了
発言  なっちん  - 05/1/30(日) 21:40 -

引用なし
パスワード
   Access初心者なので詳しくは分かりませんが、以下のコードを使用するだけでは駄目なのでしょうか?

DoCmd.Quit
・ツリー全体表示

【4301】結果を印刷させるには
質問  カッチャン  - 05/1/30(日) 9:16 -

引用なし
パスワード
    エクセルのVBAを使っていますが、データベースのデータの集計を行なおうとしています。(アクセスについては良くわかっていません)Debug.printでは集計結果が正しく表示されるのですがどのように印刷したらいいのかわかりません。ご教授をお願いいたします。

1 VBAプログラム についての質問

 Dim DB As Database
 Dim TB As Recordset
 Set DB = DBEngine.Workspaces(0).Databases(0)
 Set TB = DB.OpenRecordset("個別", DB_OPEN_TABLE)
   .................................
  (集計結果の変数は Ken Ksu A1 A1G)
  (レポート名 レポート人数  そこにテキスト17,19,21,23を貼り付けてある)

   レポート人数.テキスト17 = Ken .....1.
   レポート人数.テキスト19 = Ksu
   レポート人数.テキスト21 = A1
   レポート人数.テキスト23 = A1G

  (以降省略)

  実行すると、1.の部分で「オブジェクトが必要です」というエラーが出る。
  レポートについてのことがまだ良くわかっていません。
  どのように書き換えたらいいのでしょうか?

2 レポートについての質問
  レポートのデザイン画面でテキストを貼り付けたら、テキスト17と非連結と
  表示される枠の二つが出来ます。何故なのでしょうか。このため次のテキストは
  テキスト19と1飛びとなります。

 尚 表示結果は次のようなものを計画しています。

     月末人数集計結果

   企業名  個数  人数  人数女性
   〇〇〇  21   8   3
   〇□△  13   7   6
   □〇×  15   9   6

 よろしくお願いいたします。
・ツリー全体表示

【4300】Re:データの追出だし&削除について
回答  かろちん  - 05/1/30(日) 0:13 -

引用なし
パスワード
   レスが遅くなり申し訳ありません。

>テーブル Aでは発注を行う前(発注をしたいとは思っている)の商品
>テーブル Bはすでに発注を行った商品で納品や仕入れ金額が決まる前のもの
>テーブル Cは実際に納品され仕入れ金額が確定したものをデータとして保管するテーブ

上記の条件から言うと、一つ疑問が生じます。
テーブルAからテーブルBにデータが移るんですよね、その際に
テーブルAのデータは消さないのでしょうか?
テーブルBからテーブルCに移ったタイミングで削除することに
なっています。

1)実現方法として、テーブルA・テーブルBに削除フラグという
 フィールドを用意する。
2)テーブルBより保管用のテーブルCに移す前にテーブルBに削除
 する条件と同じ条件で削除フラグを更新する。
 (例えば"1"をセットする)
3)同様にテーブルAに対しても削除フラグをセットする。
4)テーブルBの削除フラグが"1"のデータをテーブルBに追加する
5)テーブルAの削除フラグが"1"のデータを削除
6)テーブルBの削除フラグが"1"のデータを削除
以上でよいかと思います。
・ツリー全体表示

【4299】Accessの終了
質問  hiro  - 05/1/29(土) 19:21 -

引用なし
パスワード
   質問です。
Accessのメニュー用ホームビルダーで、データーベースの終了を
選ぶとデータベースは終了しますが、Accessの枠?が残り右上の×で
終了させてますが、VBAで一発で終了させる方法はないでしょうか?
・ツリー全体表示

【4298】Re:フォームでの日付入力
お礼  たなか  - 05/1/29(土) 18:29 -

引用なし
パスワード
   Gin_II さんへ
ありがとうございました。
思いとおりに作成することが出来ました。
お礼申し上げます。
もっと勉強します。
・ツリー全体表示

【4297】Re:フォームでの日付入力
回答  Gin_II  - 05/1/29(土) 18:08 -

引用なし
パスワード
   > txthd日付に日付が入力されている場合、チェックBOXのチェックを外しても
> チェックBOXはoffになりますがテキストの日付は残ったままになってしまいます。

If IsNull(Me!txthd日付) Then
  〜省略〜
Else
  If Me!ch1 Then
    Me!TEXT1 = txthd日付
  Else
    Me!TEXT1 = Null
  End If
End If

のようにしてください。
・ツリー全体表示

【4296】Re:フォームでの日付入力
質問  たなか  - 05/1/29(土) 17:47 -

引用なし
パスワード
   Gin_II さんありがとうございます。
ご教授いただいた下記で行ってみました。
おかげさまで、txthd日付に日付が入力されてれば、その日付
入力がなければ、17時前は当日、17時以降は翌日の月日がチェックBOX
にチェックを入れることにより表示できるようになりました。

それで1つまた教えてください、チェックBOXのチェックを外すと
txthd日付に入力がない場合テキストの日付も消えてくれるのですが
txthd日付に日付が入力されている場合、チェックBOXのチェックを外しても
チェックBOXはoffになりますがテキストの日付は残ったままになってしまいます。
チェックBOXがoffの時日付も消したいのですが・・・
よろしくお願いいたします。

>フォームヘッダのテキストボックス:txthd日付
>として、
>
>If IsNull(Me!txthd日付) Then
>  If Me!ch1 Then
>    If Hour(Now()) >= 17 Then
>      Me!TEXT1 = DateAdd("d",1,Date())
>    Else
>      Me!TEXT1 = Date()
>    End If
>  Else
>    Me!TEXT1 = Null
>  End If
>Else
>  Me!TEXT1 = txthd日付
>End If
>
>ではどうでしょうか?
・ツリー全体表示

【4295】Re:フォームでの日付入力
回答  Gin_II  - 05/1/29(土) 17:00 -

引用なし
パスワード
   フォームヘッダのテキストボックス:txthd日付
として、

If IsNull(Me!txthd日付) Then
  If Me!ch1 Then
    If Hour(Now()) >= 17 Then
      Me!TEXT1 = DateAdd("d",1,Date())
    Else
      Me!TEXT1 = Date()
    End If
  Else
    Me!TEXT1 = Null
  End If
Else
  Me!TEXT1 = txthd日付
End If

ではどうでしょうか?
・ツリー全体表示

【4294】Re:データの追出だし&削除について
質問  kiyo  - 05/1/29(土) 13:02 -

引用なし
パスワード
   言葉足らずですいません。
これは発注を行うときのイメージでそれぞれ使います
テーブル Aでは発注を行う前(発注をしたいとは思っている)の商品
テーブル Bはすでに発注を行った商品で納品や仕入れ金額が決まる前のもの
テーブル Cは実際に納品され仕入れ金額が確定したものをデータとして保管するテーブルです。

これでわかりますか??


▼かろちん さん:
>どうしてこんなことをする必要があるのでしょうか?
>1)テーブルAとテーブルBの関連は何ですか?
>2)テーブルBとテーブルCの関連は何ですか?
>
>テーブルCは保管用と分かるのですが、テーブルAとテーブルBの
>用途が不明です。
>
>削除はできますが、用途によっては不可能かもしれませんので
・ツリー全体表示

【4293】フォームでの日付入力
質問  たなか  - 05/1/29(土) 2:10 -

引用なし
パスワード
   初めまして。
今まで使用していたDBで一部手直しがあるのですが、方法がうまくいきません
ご教授お願いいたします。

「今までのやり方」(ソースは下記のとおり)
フォームにチェックBOXとテキストBOXはあり、チェックBOXにチェック
を入れると当日の日付が入力されます。
ただしPM5:00を超えてチェックされたものは翌日を入力させます。

[ソース](マクロをVBAに変換したものです)
*cb1=チェックBOX名
 TEXT1=テキストBOX

Private Sub cb1_Click()
On Error GoTo cb1_Click_Err
  If (Forms!一括更新!cb1 = True) Then
    Forms!一括更新![TEXT1] = Date
  End If
   If (Time() >= "17:00:00") Then
   Forms!一括更新![TEXT1] = Date + 1
  End If
   If (Forms!一括更新!cb1 = False) Then
     Forms!一括更新![TEXT1] = Null
  End If
cb1_Click_Exit:
  Exit Sub
cb1_Click_Err:
  MsgBox Error$
  Resume cb1_Click_Exit
End Sub

上記で今までは動作させていたのですが、上記ではチェックBOXにチェックを
入れたとき当然当日か翌日した入力できませんでした。これが正常動作だったの
ですが例外的に過去日を入力する要求があり、フォームのフォームヘッタに
テキストBOXを作りそのテキストBOXに日付が入力されていればその月日を
[TEXT1]に入力し、そのテキストBOXがnull(何も入力されていなければ)今まで
のように当日、PM5:00以降は翌日を入力させたいのですが、うまく出来ません
ご教授願います。
・ツリー全体表示

【4292】Re:データの追出だし&削除について
発言  かろちん  - 05/1/28(金) 23:10 -

引用なし
パスワード
   どうしてこんなことをする必要があるのでしょうか?
1)テーブルAとテーブルBの関連は何ですか?
2)テーブルBとテーブルCの関連は何ですか?

テーブルCは保管用と分かるのですが、テーブルAとテーブルBの
用途が不明です。

削除はできますが、用途によっては不可能かもしれませんので
・ツリー全体表示

【4291】データの追出だし&削除について
質問  きよ  - 05/1/28(金) 18:18 -

引用なし
パスワード
   テーブルのデータを保管用テーブルに移動させた時に、別のテーブルにあるデータを削除したいのですがどうすれば良いのでしょうか?
例)
テーブルA)
みかん   ←テーブルBからテーブルCにデータが移動した時に削除
りんご   ←テーブルBからテーブルCにデータが移動した時に削除
バナナ

テーブルB)
みかん   →テーブルCに移動後、テーブルBとテーブルAのデータを削除
りんご   →テーブルCに移動後 テーブルBとテーブルAのデータを削除

テーブルC)
みかん   ←テーブルBから
りんご   ←テーブルBから
いちご
レモン

重複データの削除でいけるかと思ったのですが・・・。
誰かわかりやすく教えてください。
よろしくお願いします。
・ツリー全体表示

【4290】未入力(空白)のみを抽出したい。
お礼  ゴン太  - 05/1/28(金) 15:50 -

引用なし
パスワード
   出来ました
ありがとうございます。
手前が空白だったのですね!
・ツリー全体表示

【4289】Re:未入力(空白)のみを抽出したい。
回答  Gin_II  - 05/1/28(金) 15:44 -

引用なし
パスワード
   > Me!サブフォームA.Form.Filter = "フールドA Is Null ''"

Null の前が、全角空白になっているようです。
あと、シングルクォーテーションは不要だと思います。

Me!サブフォームA.Form.Filter = "フールドA Is Null"
・ツリー全体表示

443 / 500 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
1084746
(SS)C-BOARD v3.8 is Free