Access VBA質問箱 IV

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

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


1357 / 2272 ツリー ←次へ | 前へ→

【7516】サブフォームの行 tttn 06/3/15(水) 17:33 質問[未読]
【7523】Re:サブフォームの行 Gin_II 06/3/15(水) 22:38 回答[未読]
【7529】Re:サブフォームの行 tttn 06/3/16(木) 10:52 質問[未読]
【7530】Re:サブフォームの行 Gin_II 06/3/16(木) 11:00 回答[未読]
【7533】Re:サブフォームの行 tttn 06/3/16(木) 13:52 質問[未読]
【7548】Re:サブフォームの行 Gin_II 06/3/17(金) 8:38 回答[未読]
【7549】Re:サブフォームの行 tttn 06/3/17(金) 10:34 質問[未読]
【7550】Re:サブフォームの行 Gin_II 06/3/17(金) 11:45 回答[未読]
【7552】Re:サブフォームの行 tttn 06/3/17(金) 15:52 質問[未読]

【7516】サブフォームの行
質問  tttn  - 06/3/15(水) 17:33 -

引用なし
パスワード
   始めましてアクセスで困っています。教えて頂きたいです。

DAOで接続してテーブルにデータ登録しますが、サブフォームに入力した複数行を一行ずつINSERTしたいです。

そのためにループで回したいですがSubFormにある行をVBAで呼び方(設定しかた、書き方)を良く分かりません。また、SubFormに全行数をしりたいですがどうすればいいでしょうか?

例えば:Me!SubForm.rows

今とまっていますので方法を回答をお願い致します。

【7523】Re:サブフォームの行
回答  Gin_II  - 06/3/15(水) 22:38 -

引用なし
パスワード
   >DAOで接続してテーブルにデータ登録しますが、サブフォームに入力した複数行を
>一行ずつINSERTしたいです。

サブフォームの元となっているテーブルは?
そちらを使えば大丈夫だと思いますけど。

【7529】Re:サブフォームの行
質問  tttn  - 06/3/16(木) 10:52 -

引用なし
パスワード
   ▼Gin_II さん:
>サブフォームの元となっているテーブルは?
>そちらを使えば大丈夫だと思いますけど。

返答をありがとうございます。
登録ボタンを押下するサブフォームに入力したデータをテーブルに登録します。
一行の場合は下記のように書きますが・・・。

Private Sub 登録_Click()
  Dim strNo, strName, strKana, strTel, strEmail As String
  Dim T_SQL As String
  Dim DB As Database
  Dim myRs  As DAO.Recordset
  Set DB = CurrentDb()

  strNo = Me![F_intra発注書作成明細].Form.[NO]
  strName = Me![F_intra発注書作成明細].Form.[氏名]
  strKana = Me![F_intra発注書作成明細].Form.[カナ]
  strTel = Me![F_intra発注書作成明細].Form.[TEL]
  strEmail = Me![F_intra発注書作成明細].Form.[メール]

  T_SQL = "INSERT INTO T_会員(NO, 氏名, カナ, TEL, メール)"
  T_SQL = T_SQL & " VALUES('" & strNo & "','" & strName & "',"
  T_SQL = T_SQL & "'" & strKana & "','" & strTel & "',"
  T_SQL = T_SQL & "'" & strMemo & "')"
  DB.Execute T_SQL
End Sub

複数の行をあった場合は登録ボタンを1回だけ押すとループで回して全部登録するようにしたいです。どうのようにかけばよいでしょうか?
例え:
  For i = 1 to サブフォームの全行数
        :
        :
  Next
サブフォームの全行数と一行ずつの配列のような設定しかたをよく分かりません。とても困っています。是非教えて頂きたいです。よろしくお願いします。

【7530】Re:サブフォームの行
回答  Gin_II  - 06/3/16(木) 11:00 -

引用なし
パスワード
   >登録ボタンを押下するサブフォームに入力したデータをテーブルに登録します。
>一行の場合は下記のように書きますが・・・。

> サブフォームの元となっているテーブルは?
については?


そのテーブルを元に、追加クエリを実行すれば、そもそも

>ループで回して全部登録するようにしたいです。
こういったことをする必要がありませんけど。

【7533】Re:サブフォームの行
質問  tttn  - 06/3/16(木) 13:52 -

引用なし
パスワード
   ▼Gin_II さん:
>> サブフォームの元となっているテーブルは?
>については?
前問に書いてた様にT_会員(NO, 氏名, カナ, TEL, メール)テーブルです。

>

>>ループで回して全部登録するようにしたいです。
>こういったことをする必要がありませんけど。

テーブルにODBCでサーバー接続する場合はどのように書けばいいですか?

【7548】Re:サブフォームの行
回答  Gin_II  - 06/3/17(金) 8:38 -

引用なし
パスワード
   >テーブルにODBCでサーバー接続する場合はどのように書けばいいですか?

リンクテーブルにしているのなら、同じだと思います。
追加クエリをクエリのデザインビューで作成して、実行できませんか?

【7549】Re:サブフォームの行
質問  tttn  - 06/3/17(金) 10:34 -

引用なし
パスワード
   ▼Gin_II さん:
>リンクテーブルにしているのなら、同じだと思います。
>追加クエリをクエリのデザインビューで作成して、実行できませんか?

ありがとうございます。
サブフォームに入力するだけで勝手にテーブルに登録してしまいます。登録ボタンを押してから初めてサブフォームにある行分をテーブルにと登録するようにしたいですが・・・。

それからサブフォームの数量というフィルドがあって全行の数量合計を出したいですがどうすれば良いでしょうか?

よろしくお願いいます。

【7550】Re:サブフォームの行
回答  Gin_II  - 06/3/17(金) 11:45 -

引用なし
パスワード
   > サブフォームに入力するだけで勝手にテーブルに登録してしまいます。
> 登録ボタンを押してから初めてサブフォームにある行分をテーブルに
> 登録するようにしたいですが・・・。

うん?

> DAOで接続してテーブルにデータ登録しますが、サブフォームに入力した
> 複数行を一行ずつINSERTしたいです。

この質問文から、本登録用のテーブルと、仮登録用のテーブル(ワークテーブル)を
利用していると思ったんですが、違うのでしょうか??

もともと、連結フォームであれば、データを入力したら1レコードずつ登録
されます。
非連結のフォームであれば、複数レコード分の入力はできません。
#コントロールを必要な数、配置するとかであれば別でしょうけど。


> それからサブフォームの数量というフィルドがあって全行の数量合計を
> 出したいですがどうすれば良いでしょうか?

サブフォームのフォームフッターなりに、テキストボックスを作成して、
コントロールソースプロパティに
=Sum([数量])
のようにしてください。

【7552】Re:サブフォームの行
質問  tttn  - 06/3/17(金) 15:52 -

引用なし
パスワード
   ▼Gin_II さん:

>サブフォームのフォームフッターなりに、テキストボックスを作成して、
>コントロールソースプロパティに
>=Sum([数量])
>のようにしてください。

同じサブフォーム内にあるテキストボックスですと出来ましたが、テキストボックスはメインフォームにある場合はどのように設定しますか?

ちなみに、サブフォームはメインフォームにリンクしています。

1357 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free