Access VBA質問箱 IV

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

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


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

【7243】データの新規追加
質問    - 06/2/6(月) 19:09 -

引用なし
パスワード
   フォームのレコードソースに選択クエリを指定しています。
レコードを新規追加したいのですが。
「レコードを追加できません。テーブルBの結合キーがレコード
セットにありません。」とのメッセージが出て追加できません。
どなたかフォームの移動ボタンでレコードを追加できる方法が
ありましたら教えていただきたいです。
どうぞよろしくお願いします。

開発環境)
Win2k,Access2000

テーブルの環境)
テーブルA・・・30件分のデータが入っている。
テーブルB・・・データが入っていない状態。

選択クエリの中身)
テーブルAとテーブルBとテーブルCとテーブルDをリレーションシップ
で設定。ただし参照整合性のチェックを入れていない。
・ツリー全体表示

【7242】Re:前の月の始めの日と終わりの日の抽出
回答  Gin_II  - 06/2/6(月) 15:40 -

引用なし
パスワード
   > (例えば2月1日に1月のデータを集計していてForm上に1月1日〜1月31日という
> ふうに自動的に抽出したいわけです。)

前月初日
前月末日
を求めれれればいいということでしょうか?
であれば、以下の式で求めることができます。

DateSerial(Year(Now()), Month(Now())-1, 1)
DateSerial(Year(Now()), Month(Now()), 0)
・ツリー全体表示

【7241】前の月の始めの日と終わりの日の抽出
質問  栃本  - 06/2/6(月) 15:38 -

引用なし
パスワード
   今、集計を作っていてForm上にて前の月の日の最初の日と、最後の日を自動的に抽出したいのですがどのようにしたらいいですか?
(例えば2月1日に1月のデータを集計していてForm上に1月1日〜1月31日というふうに自動的に抽出したいわけです。)
お願いします・・
・ツリー全体表示

【7240】Re:mdbコピーしてからテストすれば
発言  たん  - 06/2/6(月) 12:31 -

引用なし
パスワード
   >こちらの環境はac2000を使用しています。
>何度条件を入力しなおしても同じ現象となっていますが、
>運用中のDBなので新規に作り直すことができない状況です。
>最適化してみて再度チャレンジしてます。

つか、コピーして、コピーした先をいじればすむ話だと思うのですがね。
(データ部と実行部を別mdbにしてるなら、両方コピーした上で、
 リンクマネージャーでリンクだけ張り直せば済むでしょうに。)

で、コピーした先のmdbファイルを元に新mdbにインポートするなり、
加工するなり、色々やればいい話。

# テストとはそういう風にやるものです。
・ツリー全体表示

【7239】Re:リレーションにこだわる必要はない
回答  たん  - 06/2/6(月) 12:25 -

引用なし
パスワード
   >>本当に全テーブルの関係する項目全てを
>>リレーションシップで結んでいく必要があるのでしょうか?

リレーションシップありきを前提として考えるから、そういう変な考えになると
思われます。

システムを作る上で大事なのは、テーブル構成であり、リレーションシップでは
ありません。

クエリを繋げたり、VBAでSQL文を発行したりというように作っていくなかで、
「このテーブルとこのテーブルは1組にした方が全体としていいな」とか思った
場合、リレーションを組むという形にすべきです。

リレーションはあくまで手法・手段の一つであり、必須ではありません。

ですから、小僧さんのように
> リレーションシップは設定しておりません。

設定しなくても、なんら問題は生じないかと。
・ツリー全体表示

【7238】Re:ワイルドカードを使った抽出条件
回答  小僧  - 06/2/6(月) 11:38 -

引用なし
パスワード
   ▼pinkred さん:
こんにちは。

>「1桁目から3桁目が第3土」という条件は作成できないのでしょうか?

そうですね。こちらですと等価条件ですので、うまく行くかもしれませんね。


>>> データ例
>>>  フィールド1 フィールド2  フィールド3
>>>  A      東京都     第3土曜(午後)
>>>  B       大阪府     第3日曜(夕方19時以降)
>>>  C       東京都     第3土曜(午後14時までに)
>>>  D       神奈川県    10日(午前中)
>>>  E       神奈川県    第2日曜(午前中)
>>>  F       広島県      第2土曜(18時以降)
>>>

クエリで抽出する際、適当な名前を付けてフィールドを追加します。

抽出:Left([フィールド3],3)


このフィールドの抽出条件を "第3土" として結果を確認。
問題なく抽出できるようでしたら、非表示に。

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

【7237】Re:ワイルドカードを使った抽出条件
質問  pinkred  - 06/2/6(月) 11:12 -

引用なし
パスワード
   小僧 さん

アドバイスありがとうございます。
こちらの環境はac2000を使用しています。
何度条件を入力しなおしても同じ現象となっていますが、
運用中のDBなので新規に作り直すことができない状況です。
最適化してみて再度チャレンジしてます。

また、formatを使い「1桁目から3桁目が第3土」という条件は作成できないのでしょうか?
今回の様にstring型の場合はformat文はどうするのでしょうか?
初心者の質問で申し訳ありません。

どなたか教えてください。

>▼pinkred さん:
>こんにちは。
>
>> データ例
>>  フィールド1 フィールド2  フィールド3
>>  A      東京都     第3土曜(午後)
>>  B       大阪府     第3日曜(夕方19時以降)
>>  C       東京都     第3土曜(午後14時までに)
>>  D       神奈川県    10日(午前中)
>>  E       神奈川県    第2日曜(午前中)
>>  F       広島県      第2土曜(18時以降)
>>
>>第3日曜のデータまで取ってきてしまいます。
>
>当方の環境(Ac2002)では、Like 第3土曜* で A と C が抽出されましたよ ^^
>
>もう一度抽出条件を見直されてみて、間違いの無いようでしたら
>MDB がおかしくなってしまっているかもしれません。
>
>新規 MDB を作成して試されてみてはいかがでしょうか。
・ツリー全体表示

【7236】Re:レポートの枚数について
質問  NEMONEMO  - 06/2/6(月) 10:00 -

引用なし
パスワード
   よろずや さんありがとうございます。

できればレポート内で計算し、終了時にテーブルに出力したいのですが、
レポート内での計算方法や、テーブルに出力の仕方がぜんぜんわからないので
教えていただきたいです。
よろしくお願いします。
・ツリー全体表示

【7235】Re:業務システムにおけるリレーションシッ...
回答  小僧  - 06/2/6(月) 9:54 -

引用なし
パスワード
   ▼M.H さん:
おはようございます。

>本当に全テーブルの関係する項目全てを
>リレーションシップで結んでいく必要があるのでしょうか?

システムを構築する方がどこで苦労するか、という点が関わってくると思われます。

初めにテーブル同士の相関関係をリレーションシップで固定しておけば
クエリを作る際やレコードを削除する際などに制約ができ、
決まった制約の中でしか作業ができなくなります。


>例えば、テーブル数が100を超えることも珍しくありません。

という事なのですが、テーブルの相関関係を全て把握している方が
システムを構築されるのでしょうか。

例えば顧客情報テーブルからある顧客番号を削除する処理の際、
その番号に関連づけられた全ての情報を削除しなければならないのに、
削除処理を構築する方の考慮不足によって所々に使わないデータが
ゴミとして残ってしまう事も考えられます。


>みなさんはどうされてますか?

当方が使っている MDB はせいぜい 20 個くらいしかテーブルがないので
リレーションシップは設定しておりません。

更新処理、削除処理等が発生する際に他テーブルとの整合性を意識して
処理を行うような作りにしております。
・ツリー全体表示

【7234】Re:テーブルの正規化で・・・。
回答  Gin_II  - 06/2/6(月) 8:54 -

引用なし
パスワード
   > 上記のようにテーブルは作成しているのですが、
であれば、

> 上記のような構成であれば、サブフォームなんかを使って、担当者を入力するという
> 方法もあるかと。
と、回答をしていますけど ^^;
・ツリー全体表示

【7233】Re:フォルダアクセス時にパスワード
お礼  smith  - 06/2/6(月) 8:54 -

引用なし
パスワード
   YU−TANGさん助かります。
ありがとうございました。
・ツリー全体表示

【7232】業務システムにおけるリレーションシップ...
質問  M.H  - 06/2/5(日) 10:43 -

引用なし
パスワード
   はじめまして。最近まで全く異なる言語でシステム開発していた者です。
Accessはかなり初心者ですので、よろしくお願いいたします。

Accessで企業システムなどを構築する場合、本当に全テーブルの
関係する項目全てをリレーションシップで結んでいく必要があるので
しょうか?

例えば、テーブル数が100を超えることも珍しくありません。
また、顧客マスタの郵便番号と郵便番号マスタ、顧客マスタの顧客区分
と顧客区分マスタなど・・・それらを全て結ぶと、すざまじい状態に
なります。

個人的には、売上ファイルと売上明細ファイルなどの、親子関係の
テーブルにだけリレーションを張れば良いと思いますが・・・

みなさんはどうされてますか?
・ツリー全体表示

【7231】Re:レポートの枚数について
回答  よろずや  - 06/2/4(土) 9:59 -

引用なし
パスワード
   >自分の考えはページに何行出力されるか把握し(A)
>店舗番号のデータ数をカウントし(B)
>(B)/(A)であまりが出た場合+1するという考え方です。

それで大正解です。

>ほかに方法がないか教えていただきたいです。

他の方法は、条件が複雑で割り算では答えが出ない場合にのみ
考えればいいことです。

例えば、レポート内で計算し、終了時にテーブルに出力するとか。
・ツリー全体表示

【7230】Re:保存と印刷について
回答  たぬき  - 06/2/3(金) 20:32 -

引用なし
パスワード
   テーブルとフォームが繋がっていて、編集中は鉛筆マークがでていて
次のレコードにカーソルを移動したりフォームを閉じた時点でデータ
が確定することだと思います。
鉛筆マークが表示されている段階ではデータは確定していないので印
刷されません。

いろいろなやりかたがあると思いますが・・・

印刷ボタンのモジュールに

DoCmd.RunCommand acCmdSaveRecord

を書くとその時点でデータが確定されます。

はずしていたらごめんなさい。
・ツリー全体表示

【7229】Re:フォルダアクセス時にパスワード
発言  YU-TANG WEB  - 06/2/3(金) 20:20 -

引用なし
パスワード
   こんにちは。

▼smith さん:
>AccessのVBAでネットワーク上のフォルダ内のファイルにアクセスする
>のですが、そのフォルダにはユーザー名とパスワードが必要なので
>VBAへの記述方法を教えていただきたいです。

WNetAddConnection2 あるいは WNetAddConnection3 で Google
検索してみてはいかがでしょうか。
キーワードに「Declare」あたりを付加すると、VB 系の情報に
絞り込めるはずです。

それでは。
・ツリー全体表示

【7228】保存と印刷について
質問  mayu  - 06/2/3(金) 17:33 -

引用なし
パスワード
   こんにちは
また 初心者的なことですが よろしくお願いします。

個人情報を入力するフォームをつくりました。
そこに コマンドボタンをつくりレポートで作成した様式で印刷します。
印刷はできます(当たり前ですね・・・)
本日聞きたいのは その印刷に入力内容がすぐに反映しないということなんです
現状ですと、入力後フォームを一度閉じて、再度印刷したいデータを
呼び出してから出ないと 入力内容を反映したものが印刷されません。

入力⇒印刷(コマンドボタン)とするとレポートで作成した様式
または 前回作成されたものは印刷されます。
私がしたいのは 新しく入力されたものもそのときに印刷したい
つまり上記やりかたで 一番最新の物が印刷されるということです
現状は 入力⇒フォームを閉じる⇒フォームでデータを呼び出す⇒印刷
という一手間かかった印刷になっています。
これを 入力⇒印刷 という方法で印刷できないものでしょうか?
やはり一度閉じるしかないでしょうか?

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

【7227】Re:コンボボックスにデータが入力されてい...
お礼   E-MAIL  - 06/2/3(金) 17:26 -

引用なし
パスワード
   小僧さんありがとうございます。
できました。
・ツリー全体表示

【7226】Re:ワイルドカードを使った抽出条件
発言  小僧  - 06/2/3(金) 17:25 -

引用なし
パスワード
   ▼pinkred さん:
こんにちは。

> データ例
>  フィールド1 フィールド2  フィールド3
>  A      東京都     第3土曜(午後)
>  B       大阪府     第3日曜(夕方19時以降)
>  C       東京都     第3土曜(午後14時までに)
>  D       神奈川県    10日(午前中)
>  E       神奈川県    第2日曜(午前中)
>  F       広島県      第2土曜(18時以降)
>
>第3日曜のデータまで取ってきてしまいます。

当方の環境(Ac2002)では、Like 第3土曜* で A と C が抽出されましたよ ^^

もう一度抽出条件を見直されてみて、間違いの無いようでしたら
MDB がおかしくなってしまっているかもしれません。

新規 MDB を作成して試されてみてはいかがでしょうか。
・ツリー全体表示

【7225】Re:コンボボックスにデータが入力されてい...
回答  小僧  - 06/2/3(金) 17:21 -

引用なし
パスワード
   ▼爺 さん:
こんにちは。

>コンボボックスにデータが入力されている個数を調べる

タイミングが、コマンドボタンを押した際でよろしければ

Private Sub 入力チェック_Click()
Dim i As Long
Dim Cnt As Long

  For i = 1 To 40
    If Me.Controls("cbox" & i).Value <> "" Then
      Cnt = Cnt + 1
    End If
  Next
  
  MsgBox "入力済みのコンボボックスは " & Cnt & " 個です"
End Sub

こんな感じでしょうか。
・ツリー全体表示

【7224】フォルダアクセス時にパスワード
質問  smith  - 06/2/3(金) 16:28 -

引用なし
パスワード
   AccessのVBAでネットワーク上のフォルダ内のファイルにアクセスするのですが、
そのフォルダにはユーザー名とパスワードが必要なので
VBAへの記述方法を教えていただきたいです。

Dir("\\172.10.19.1\c\text1.txt")

上記のようにtext1.txt というファイルの存在を調べる場合です。
「\\172.10.19.1\c」へのユーザー名とパスワードは
ユーザー名:administrator
パスワード: なし
です。

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

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