- 締切済み
Access_テーブルへデータ追加する方法
自分なりに調べてみましたが、わからなかったのでご存知の方がいらっしゃいましたら、ぜひ教えてください。 【状況】 アクセスのサンプルデータ(MDB)を自分でアレンジしています。VBAで計算させた結果をフォーム上(ラベル)で表示させています。 【やりたいこと】 上記ラベルに表示された結果をデータとしてテーブルに落としたいと考えています。 【問題?】 非連結のテキストボックスなら落とすことが可能でしたが、ラベルに表示された値?データはテーブルに落とす方法が分かりません。 ご存知の方がいらっしゃいましたら、ぜひ教えてください。よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- palmmy
- ベストアンサー率38% (841/2169)
>上記ラベルに表示された結果をデータとしてテーブルに落としたいと考えています。 ラベルの値を変数に入れて、SQL文を作って、SQL を実行すればよいかと思います。 INSERT でレコードの追加が出来ます。 http://mailsrv.nara-edu.ac.jp/~asait/visual_basic/access/part5.htm が参考になるかと思います。
- konchikisho
- ベストアンサー率22% (2/9)
こんにちわ#1です フォームに、「コマンド0」という名前でコマンドボタンを作成しコードビルダを立ち上げて、 コードビルダの「ツール」→「参照設定」で 「Microsoft Dao XXX Library」にチェック入れてOKボタンを押してください その後に以下のロジックを書けば、テーブルにデータラベル値が挿入できます 以下は例なので、テーブル名、項目名、ラベル名 は適当です(自分で作ったフォーム名、テーブル名、ラベル名に直して下さい) Private Sub コマンド0_Click() Dim db1 As DAO.Database Dim rst1 As DAO.Recordset Dim strSql As String Dim strValue As String Set db1 = CurrentDb strSql = "select テーブル名.* from テーブル名" Set rst1 = db1.OpenRecordset(strSql) rst1.AddNew rst1![テーブルの項目名] = ラベル名.Caption & "*" rst1![テーブルの項目名] = ラベル名.Caption & "*" rst1![テーブルの項目名] = ラベル名.Caption & "*" rst1![テーブルの項目名] = ラベル名.Caption & "*" rst1.Update rst1.Close End Sub
> 上記ラベルに表示された結果をデータとしてテーブルに落としたい なぜ「ラベル」に入れないといけないのですか? 「テキストボックス」に入れても、「編集不可」等でユーザーからいじれないようにできますし、 表示も「ラベル」と同じように見せることも可能です。 「サンプルの『フォーム』上でその『コントロール』が『ラベル』になっているから」というだけの理由で 「ラベル」に固執しているのなら、 「書式」メニューの「コントロールの種類の変更」で「テキストボックス」に変更できます。
- konchikisho
- ベストアンサー率22% (2/9)
こんにちわ 正しく回答する為に、質問させて下さい 判らないのはフォームのラベルからVBAのモジュールの変数に落とすのが判らないのですか? どの様に、ラベルの値をテーブルに挿入しようとしているのか判れば回答しやすいので記載して下さい。
補足
ご回答ありがとうございます。よろしくお願いします。 正直、どんな方法でやったらいいのかも分からない状態です。恥ずかしながら、ゼロ状態でわかりません。すみません。ご指摘の通り、変数に落とさなければいけない気がしますが、できていません。 ですので、やりたいことをもう少し具体的に書いてみます。 【テーブルに落としたい理由】 フォーム(VBAで計算させた値)のデータは、最終的にレポート上で表示、印刷します。レポート上では指定の枠内に表示(左詰)します。その際、右側の余白?部分は※(アスタリスク)を表示します。 このアスタリスクを表示(実はこの方法もこれから具体的に考えねばなりません)する為に、一度テーブルにデータを落とす必要性があると考えています。 ・・が、アスタリスクを表示するにあたり、テーブルに落とす必要がなければ、フォームの(VBAで計算させた)値は”絶対に”テーブルへ落とす必要はありません。 ご質問の意図を得ているのか自信がありませんが・・よろしくお願い致します。