|
▼聡 さん:
こんにちは
必要情報が揃うまで時間がかかりましたね。次回から質問するときの
教訓にしましょう。
さて、本題ですが、先ずこれから記載するコード類は全て
・未検証です。
・エラー処理、不適正なデータのチェックは考慮していない。
のでお断りしておきます。
・・・同じ環境作るの面倒くさいので。
以下私ならこうするという例
(これがBestと言う気はさらさら無いですが、非連結なら似たような方法になるはずです。)
DAOは既に枯れたもので安定はしているんでしょうが、これから書くなら
ADOで書いた方がサンプル等の参考文献も多いのでADOで書く事をお勧めします。
DAOの進歩は、10年前に終わりましたので。
以下のSQLで「Q_伝票入力」を作成・・・・(INSERT T_伝票入力 SET (商品名、商品コード) VALUES([Param1],[Param2]);
以下のSQLで「Q_商品グループ番号」を作成
SELECT T_商品マスタ.商品グループ番号, T_商品マスタ.商品コード, T_商品マスタ.商品名 FROM T_商品マスタ ORDER BY T_商品マスタ.商品グループ番号, T_商品マスタ.商品コード;
新規Form作成 以下構成 全て非連結
combobox オブジェクト名 cboKey 非連結 値集合ソース 「Q_商品グループ番号」
commandbutton オブジェクト名 cmdAddNew 非連結
textbox オブジェクト名 txtName 非連結
textbox オブジェクト名 txtCode 非連結
※ADO2.6以降に参照設定必須
'データ登録ボタン
Private Sub cmdAddNew_Click()
Dim cn As ADODB.Connection
Dim cmd As ADODB.Command
Dim prm As ADODB.Parameter
Dim param1value As String
Dim param2value As String
'データ取得
param1value = Me.txtName.Text
param2value = Me.txtCode.Text
Set cn = CurrentProject.Connection
Set cmd = New ADODB.Command
Set prm = New ADODB.Parameter
With cmd
.ActiveConnection = cn
.CommandText = Q_Name
.CommandType = adCmdStoredProc
'パラメータ追加
Set prm = .CreateParameter("Param1", adChar, adParamInput, , param1value)
.Parameters.Append (prm)
Set prm = .CreateParameter("Param2", adChar, adParamInput, , param2value)
.Parameters.Append (prm)
.Parameters.Refresh
'実行
.Execute
End With
Set prm = Nothing
Set cmd = Nothing
cn.Close
Set cn = Nothing
End Sub
と、ここまで書いたら根性が尽きたので、
textbox等への入力補助については根性が復活するのを待ってね。
後、comboboxのチェンジイベント?でパラメータクエリ(作成必要)を
キックして、必要データを取得、textboxに表示させようかなと思っています。
出来たらやってみて下さい。パラメータクエリでなくてもSQLを直接投げても
OKです。でもパラメータクエリを作った方が、Accessがクエリを作って
くれるので楽チン。
|
|