Access VBA質問箱 IV

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

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


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

【10918】レコードを1件ずつ読み込む 09/1/8(木) 17:24 質問[未読]
【10919】Re:レコードを1件ずつ読み込む neptune 09/1/8(木) 22:56 回答[未読]
【10920】Re:レコードを1件ずつ読み込む みかん 09/1/8(木) 23:19 質問[未読]
【10922】Re:レコードを1件ずつ読み込む neptune 09/1/9(金) 10:47 回答[未読]
【10927】Re:レコードを1件ずつ読み込む 09/1/9(金) 22:35 発言[未読]
【10928】Re:レコードを1件ずつ読み込む neptune 09/1/10(土) 12:42 発言[未読]
【10930】Re:レコードを1件ずつ読み込む 09/1/10(土) 20:09 発言[未読]
【10931】Re:レコードを1件ずつ読み込む neptune 09/1/11(日) 10:54 回答[未読]
【10934】Re:レコードを1件ずつ読み込む 09/1/11(日) 22:21 発言[未読]
【10935】Re:レコードを1件ずつ読み込む neptune 09/1/11(日) 22:31 回答[未読]
【10932】Re:レコードを1件ずつ読み込む neptune 09/1/11(日) 21:50 回答[未読]
【10933】Re:レコードを1件ずつ読み込む neptune 09/1/11(日) 22:00 回答[未読]
【10936】Re:レコードを1件ずつ読み込む 09/1/12(月) 0:04 発言[未読]
【10937】Re:レコードを1件ずつ読み込む neptune 09/1/12(月) 9:25 回答[未読]

【10918】レコードを1件ずつ読み込む
質問    - 09/1/8(木) 17:24 -

引用なし
パスワード
   お世話になります。ご教授頂きたくお願い申し上げます。
フォーム上に「商品マスタ全て読込ボタン」というものがあり、クリックすると
T_商品マスタのデータをF_伝票入力に読み込むDBを作成したいのですが
F_伝票入力にデータが反映出来ず困っております。
下のコードを見てご察しの通りと思いますが、テーブルであるT_伝票入力に
はデータが反映されております。

現在構築している内容は、以下の通りです。
<テーブル>
T_商品マスタには商品グループ番号、商品コード、商品名
T_伝票入力には商品コード、商品名
となっており
<フォーム>
F_伝票入力には商品コード、商品名(T_伝票入力を基に作成しました)
とあります。

コードを以下のように書きました。

Private Sub 商品マスタ全て読込_Click()

  Dim cn As New ADODB.Connection
  Dim rs1 As ADODB.Recordset
  Dim rs2 As ADODB.Recordset
 
  Set cn = Application.CurrentProject.Connection
  Set rs1 = New ADODB.Recordset
  Set rs2 = New ADODB.Recordset
  
  rs1.Open "T_商品マスタ", cn, adOpenStatic, adLockReadOnly
  rs2.Open "T_伝票入力", cn, adOpenKeyset, adLockOptimistic
  
   rs1.MoveFirst
  
  Do Until rs1.EOF
  
     rs2.AddNew
      rs2!商品コード = rs1!商品コード
      rs2!商品名 = rs1!商品名
     rs2.Update
   
   rs1.MoveNext
  
  Loop
  
  rs1.Close
  rs2.Close
  cn.Close
  
End Sub

この状態ですと、フォーム上ではなく、直接テーブルにデータが書き込まれる
為、フォームであるF_伝票入力には何も変化が起きておりません。
T_伝票入力にデータを反映したいのは勿論なのですが、F_伝票入力にも表示
されるようにしたいのですが、どなたかご教授下さいませ。
宜しくお願い致します。

【10919】Re:レコードを1件ずつ読み込む
回答  neptune  - 09/1/8(木) 22:56 -

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

商品マスタ全て読込ボタンがF_伝票入力にあるなら
me.refresh
とやってみて下さい。

【10920】Re:レコードを1件ずつ読み込む
質問  みかん  - 09/1/8(木) 23:19 -

引用なし
パスワード
   ご回答ありがとうございます

>商品マスタ全て読込ボタンがF_伝票入力にあるなら
はい。あります。
>me.refresh
>とやってみて下さい。
ベタな質問ですが、どこに置けば良いでしょうか?
申し訳ありません。

【10922】Re:レコードを1件ずつ読み込む
回答  neptune  - 09/1/9(金) 10:47 -

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

こんにちは
みかんさんですか。! ハンドルネームは固定した方が良いですよ。
ハンドルネームも掲示板上では人格を持ってますからね。

>ベタな質問ですが、どこに置けば良いでしょうか?
全ての命令の終わりで良いです。サンプルソースで言うなら
end sub の前。

前のスレッドですが、何がなにやらわからなかったので、書き込むのを
控えておりました。
・フィールドとはテーブルで定義されている要素で、同じようなフィールド
が重複するとは考えにくい・・・これが一番理解できなかった。
・基本的な事と思っていたようだが、恐らく応用編?当たりの事と思う。
・余りにも情報が少なかった。

【10927】Re:レコードを1件ずつ読み込む
発言    - 09/1/9(金) 22:35 -

引用なし
パスワード
   こんにちは。投稿の件こちらの事情でご迷惑をお掛けし申し訳ありません。
引き続きご教授頂ければ幸いです。宜しくお願い致します。

>全ての命令の終わりで良いです。サンプルソースで言うなら
>end sub の前。
これでやってみましたが、駄目でした。せっかくご教授頂きましたが、私の根本
的なコードの作りや考え方が悪いのかなと思いその後、色々な参考書等を読み漁
り、DBの構成等、やりたい事(させたい事)を再度整理してみました。
で以下のように考え、コードを再び作成してみましたが、やはりおっしゃる通り
応用編であり、初心者の私には今一歩知識が足りません。
度々のお願いですが、何卒ご教授をお願い致します。

やりたい事
注文伝票(F_伝票)の入力を行う(サブフォームは現在なし)DBで、いつも決まった
注文(例えば、ある取引先は、1回の注文時にA商品とB商品とC商品を決まって注文
し合わせてその時に違う商品も追加注文する)を効率良く入力したい。

1、F_伝票入力上にあるコンボックス(txtキー)から選択された商品グループ番号を基にT_商品マスタの内容をF_伝票入力に表示させる。(毎回決まった注文に対応)

txtキーのプロパティ値集合ソースには、
SELECT T_商品マスタ.商品グループ番号, T_商品マスタ.商品コード, T_商品マスタ.商品名 FROM T_商品マスタ ORDER BY T_商品マスタ.商品グループ番号, T_商品マスタ.商品コード;
と設定してあります。

2、1でF_伝票入力に表示させた後、毎回決まった注文商品の後に続けて直接手入
力(追加注文に対応)

3、登録ボタンをクリックし、F_伝票入力の内容をT_伝票入力に反映したい。

コードを以下のように記述しました。1、については表示する事が出来ました。3については登録ボタンが考慮されておらず1、で表示と同時に即、T_伝票入力に反映
してしまっています。2については、直接入力すると何故かT_商品マスタにデータが追加されてしまいます。この2と3の部分について(手入力で追加した分の正しい反映方法、登録ボタンの処理の記述タイミング、方法)を教えて頂きたく投稿させ
て頂きます。
長々と申し訳ありませんが、どうか宜しくお願いします。

Private Sub txtキー_AfterUpdate()
  Dim db As DAO.Database
  Dim db2 As DAO.Database
  
  Dim rs As DAO.Recordset
  Dim rs2 As DAO.Recordset
  
  Dim mySQL As String

  Set db = CurrentDb()
  Set db2 = CurrentDb()
  
  mySQL = "SELECT * FROM T_商品マスタ " _
     & "WHERE 商品グループ番号 = '" & Me!txtキー & "'"
  
  Set rs = db.OpenRecordset(mySQL)
  Set rs2 = db2.OpenRecordset("t_伝票入力", dbOpenTable)
  
  Set Me.Recordset = rs
  
  Me!商品コード.ControlSource = "商品コード"
  Me!商品名.ControlSource = "商品名"
  
  rs.MoveFirst
  
  Do Until rs.EOF
  
  With rs2
    .AddNew
    rs2!商品コード = rs!商品コード
    rs2!商品名 = rs!商品名
    .Update
  End With
   rs.MoveNext
  Loop
  
  Set rs = Nothing
  Set db = Nothing
End Sub

【10928】Re:レコードを1件ずつ読み込む
発言  neptune  - 09/1/10(土) 12:42 -

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

ようやく少しずつ情報が出てきだしましたね。小出しは止めて下さいね。
情報なしでは考える事も出来ませんから。
><テーブル>
>T_商品マスタには商品グループ番号、商品コード、商品名
>T_伝票入力には商品コード、商品名
>となっており
><フォーム>
>F_伝票入力には商品コード、商品名(T_伝票入力を基に作成しました)
ここで質問
・商品コードのコントロールはComboBox?
・商品名 のコントロールはTextBox?
この2つのコントロールはいずれも非連結?
・他にコントロールは?

>1、F_伝票入力上にあるコンボックス(txtキー)から選択された商品グループ番号を基にT_商品マスタの内容を
>F_伝票入力に表示させる。(毎回決まった注文に対応)
・comboboxのコントロール名がtxtキー

>1、については表示する事が出来ました。
・どのようにして?
>3については登録ボタンが考慮されておらず1、で表示と同時に即、T_伝票入力に反映してしまっています。
非連結ならそのような事はありえないと思いますが?連結している????

と、疑問だらけなんです。

で、最初に帰って、私なりに整理してみると以下のようになります。

使用するテーブルとその構造は以下。但し、データ型の情報が欠如している
>T_商品マスタには商品グループ番号、商品コード、商品名
>T_伝票入力には商品コード、商品名

form 非連結上に、combobox 1個、textbox 1個、commandbutton 1個を配置、
combobox  コントロール名(txtキー):商品グループ番号フィールドのデータを全て表示
textbox  コントロール名(不明):手入力
commandbutton  コントロール名(商品マスタ全て読込)
    商品マスタ全て読込をクリックする事で、T_伝票入力にcombobox とtextbox のデータを追加したい。

これで抜けているところはありますか?
後出しは困りますので、よく整理して答えてください。

・・・・・・私はサンプルは書いても全てを書く人ではないのであらかじめお断りしておきます。

【10930】Re:レコードを1件ずつ読み込む
発言    - 09/1/10(土) 20:09 -

引用なし
パスワード
   ▼neptune さん:
こんにちは
>情報なしでは考える事も出来ませんから。
すみません。お手数をお掛けしております。

>><テーブル>
>>T_商品マスタには商品グループ番号、商品コード、商品名
>>T_伝票入力には商品コード、商品名
>>となっており
>><フォーム>
>>F_伝票入力には商品コード、商品名(T_伝票入力を基に作成しました)
>ここで質問
>・商品コードのコントロールはComboBox?
いいえ。テキストボックスです。
>・商品名 のコントロールはTextBox?
はい。テキストボックスです。
>この2つのコントロールはいずれも非連結?
最初はT_伝票入力と連結しておりましたが、現在は何れも非連結になっています。
>・他にコントロールは?
フォームヘッダーの部分に、非連結のコンボックスでtxtキーというものがあります。↓の内容です。
>>1、F_伝票入力上にあるコンボックス(txtキー)から選択された商品グループ番号を基にT_商品マスタの内容を
>>F_伝票入力に表示させる。(毎回決まった注文に対応)
>・comboboxのコントロール名がtxtキー
そうなんです。書籍のサンプルを参考にしている為、このような名前になってます
>>1、については表示する事が出来ました。
>・どのようにして?
フォームヘッダーにある非連結のコンボックスであるtxtキーで商品グループ番号を選択して。
>>3については登録ボタンが考慮されておらず1、で表示と同時に即、T_伝票入力に反映してしまっています。
>非連結ならそのような事はありえないと思いますが?連結している????
すいません。連結にしておりました。非連結にして試してみましたが、コードの記述にそもそも登録ボタンの処理を入れていない為、即、T_伝票入力に反映しております。最終的にはフォームフッターにある登録ボタンの処理を入れたいと考えております。

>で、最初に帰って、私なりに整理してみると以下のようになります。
>使用するテーブルとその構造は以下。但し、データ型の情報が欠如している
>>T_商品マスタには商品グループ番号、商品コード、商品名
>>T_伝票入力には商品コード、商品名
はい。テーブルは、現在そのようになっております。
>form 非連結上に、combobox 1個、textbox 1個、commandbutton 1個を配置、
form 非連結上にcombobox×1(フォームヘッダーの部分に商品グループ番号を選択するコンボックス)
txtbox×2(フォーム詳細の部分に商品コードと商品名)
commandbutton×1(フォームフッターの部分に登録ボタン)
>combobox  コントロール名(txtキー):商品グループ番号フィールドのデータを全て表示
このコンボックスは、フォームヘッダーにあり、コンボツクをクリックすると商品グループ番号と商品コード、商品名の一覧を表示しています。txtキーのプロパティの値集合ソースには、
SELECT T_商品マスタ.商品グループ番号, T_商品マスタ.商品コード, T_商品マスタ.商品名 FROM T_商品マスタ ORDER BY T_商品マスタ.商品グループ番号, T_商品マスタ.商品コード;
と設定してあります。これはうまく動いております。
>textbox  コントロール名(不明):手入力
フォーム詳細にあり、商品コード(非連結)、商品名(非連結)の2つ。フォームヘッダーにあるコンボックスで選択した商品グループ番号に対応した商品コード、商品名を表示しております。
フォームヘッダーにあるコンボックを使わず、手入力する事も想定しております。現在は、フォームヘッダーにあるコンボックス(txtキー)から商品グループ番号を選択してフォーム詳細にある商品コード、商品名に自動的に表示した後、続けて次のレコード欄に手入力で商品コード、商品名を入力すると、何故かT_商品マスタにデータが登録されてしまっております。
これが何故かわかりません。
>commandbutton  コントロール名(商品マスタ全て読込)
>    商品マスタ全て読込をクリックする事で、T_伝票入力にcombobox とtextbox のデータを追加したい。
フォームフッターにある登録ボタンをクリックすると、フォームヘッダーにあるコンボックス(txtキー)から選択し、フォーム詳細上に表示さた商品コード、商品名と合わせてフォーム詳細上で手入力(追加)した商品名、商品コードをT_伝票入力にデータが反映するようにしたい。(現在は出来ていません)

フォームフッターにある登録ボタンをクリックする事により、フォームヘッダーにあるコンボックスから選択したデータと追加入力したデータを合わせてT_伝票入力に格納したいのです。
つまりフォームヘッダーにあるコンボックスから定型注文分を選択し、フォーム詳細に表示して、続けて追加注文を手入力(F_伝票入力上に表示されているデータ)登録ボタンでT_伝票入力に格納したい。という事なのですが。。。

こんな感じの説明でご理解頂けますでしょうか?
つたない説明で申し訳ないです。

Private Sub txtキー_AfterUpdate()
  Dim db As DAO.Database
  Dim db2 As DAO.Database
  
  Dim rs As DAO.Recordset
  Dim rs2 As DAO.Recordset
  
  Dim mySQL As String

  Set db = CurrentDb()
  Set db2 = CurrentDb()
  
  mySQL = "SELECT * FROM T_商品マスタ " _
     & "WHERE 商品グループ番号 = '" & Me!txtキー & "'"
  
  Set rs = db.OpenRecordset(mySQL)
  Set rs2 = db2.OpenRecordset("t_伝票入力", dbOpenTable)
  
  Set Me.Recordset = rs
  
  Me!商品コード.ControlSource = "商品コード"
  Me!商品名.ControlSource = "商品名"
  
  rs.MoveFirst
  
  Do Until rs.EOF
  
  With rs2
    .AddNew
    rs2!商品コード = rs!商品コード
    rs2!商品名 = rs!商品名
    .Update
  End With
   rs.MoveNext
  Loop
  
  Set rs = Nothing
  Set db = Nothing
End Sub

【10931】Re:レコードを1件ずつ読み込む
回答  neptune  - 09/1/11(日) 10:54 -

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

必要情報が揃うまで時間がかかりましたね。次回から質問するときの
教訓にしましょう。

さて、本題ですが、先ずこれから記載するコード類は全て
・未検証です。
・エラー処理、不適正なデータのチェックは考慮していない。
のでお断りしておきます。
・・・同じ環境作るの面倒くさいので。

以下私ならこうするという例
(これが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がクエリを作って
くれるので楽チン。

【10932】Re:レコードを1件ずつ読み込む
回答  neptune  - 09/1/11(日) 21:50 -

引用なし
パスワード
   ▼聡 さん:
前回の訂正
コントロールのデータ取得にtextプロパティを使っているが、そのまんまでは
エラーになるので、valueプロパティに変更の事。

続き・・・・全くの未検証。

パラメータクエリ作成
パラメータクエリ名:Q_GetData_By_Group  以下SQL
SELECT 商品コード,商品名 FROM T_商品マスタ WHERE 商品グループ番号 =[Param1]

Private Sub cboKey_Exit(Cancel As Integer)
'T_商品マスタには商品グループ番号、商品コード、商品名
  Dim cmd As ADODB.Command
  Dim prm As ADODB.Parameter
  Dim rs As ADODB.Recordset
  Const QueryName As String = "Q_GetData_By_Group"
  
  
  sData = Me.cboKey.Value
  Set rs = New ADODB.Recordset
  Set cmd = New ADODB.Command
  Set prm = New ADODB.Parameter
  With cmd
    .ActiveConnection = CurrentProject.Connection
    .CommandText = QueryName
    .CommandType = adCmdStoredProc
    'パラメータ追加
    Set prm = .CreateParameter("Param1", adChar, adParamInput, , param1value)
    .Parameters.Append (prm)
    .Parameters.Refresh  'これは不要かな??それともあればまずい??実験してみて下さい。
    Set rs = .Execute
  End With
  '単一のレコードを返すと仮定
  Me.txtCode.Value = rs.Fields("商品コード").Value
  Me.txtName.Value = rs.Fields("商品名").Value
  
  Set prm = Nothing
  Set cmd = Nothing
  rs.Close
  Set rs = Nothing
end sub

※データ型の情報が欠如しているので考慮してない。

【10933】Re:レコードを1件ずつ読み込む
回答  neptune  - 09/1/11(日) 22:00 -

引用なし
パスワード
   ▼聡 さん:
書き忘れ。

これで聡 =みかんさんの(よく考えて)これまでに書かれた情報に基づいた、
要求仕様は満たしていると思います。
但し、全くの未検証なので一度では動作しないと思いますけど。
その辺りは適当にデバッグして下さい。

※今回は説明と検証が面倒なので全部非連結で書きましたが、Accessの機能を
使えば、commandbuttonのクリックのところ以外はコード書かなくても
良いかもしれません。?

【10934】Re:レコードを1件ずつ読み込む
発言    - 09/1/11(日) 22:21 -

引用なし
パスワード
   ▼neptune さん:
こんばんは。

本当に色々と教えていただいてありがとうございます。
感謝申し上げます。
今、一つ一つご教授頂いた事を実行しております。

>以下のSQLで「Q_伝票入力」を作成・・・・(INSERT T_伝票入力 SET (商品名、商品コード) VALUES([Param1],[Param2]);

をSQLビューの画面でINSERT T_伝票入力 SET (商品名、商品コード) VALUES([Param1],[Param2]);と入力して名前を付けて保存しようとしたところ
INSERT INTOステートメントの構文エラーです。というメッセージが出て保存
出来ませんでした。ヘルプで確認したところ、予約語または引数名を正しく入力していないか、または指定していません。区切り記号に誤りがあります。とありました。おそらくスペースやカンマ等の使い方が悪いのかなと思いますが、何か注意すべき点はありますでしょうか?

度々お手数をお掛け致します。

【10935】Re:レコードを1件ずつ読み込む
回答  neptune  - 09/1/11(日) 22:31 -

引用なし
パスワード
   ▼聡 さん:
間違ってますね。ごめんなさい。

INSERT T_伝票入力 (商品名、商品コード) VALUES([Param1],[Param2]);
ですね。書式自体はこれでいけると思います。

くどいですが、データ型は自分で考慮して下さいね。

【10936】Re:レコードを1件ずつ読み込む
発言    - 09/1/12(月) 0:04 -

引用なし
パスワード
   ▼neptune さん:
こんばんは。いつもすみません。
ご教授頂きましたコードを基に実行致しましたところ
コンボボックスから商品グループ番号を選択したところで
「実行時エラー424 オブジェクトが必要です」と出て先に進めません。
.Parameters.Append (prm)のところで止まっています。
この処理は、実際にはどのような処理を行うところなのでしょうか?


Private Sub cboKey_change() 'exitではなくchangeに変更してみました。

'T_商品マスタには商品グループ番号、商品コード、商品名
  Dim cmd As ADODB.Command
  Dim prm As ADODB.Parameter
  Dim rs As ADODB.Recordset
  Const QueryName As String = "Q_GetData_By_Group"
 
 
  sData = Me.cboKey.Value
  Set rs = New ADODB.Recordset
  Set cmd = New ADODB.Command
  Set prm = New ADODB.Parameter
  With cmd
    .ActiveConnection = CurrentProject.Connection
    .CommandText = QueryName
    .CommandType = adCmdStoredProc
    'パラメータ追加
    Set prm = .CreateParameter("Param1", adChar, adParamInput, , param1value)
    .Parameters.Append (prm) 'ここで実行時エラーとなります。

【10937】Re:レコードを1件ずつ読み込む
回答  neptune  - 09/1/12(月) 9:25 -

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

こんにちは

>この処理は、実際にはどのような処理を行うところなのでしょうか?
自分で調べてください。調べた上で質問してください。
自分で意味を理解しようとしないのなら書いた意味がありません。
Helpなしでは書けませんし、理解は出来ません。もしHelpが無くても
MSへ行けばあります。

>Private Sub cboKey_change() 'exitではなくchangeに変更してみました。
その是非は挙動をみて判断して下さい。

>    .Parameters.Append (prm) 'ここで実行時エラーとなります。
これは単純な書式の間違いです。
何度も書いてますが、環境を整えてないので、コンパイルもしていません。
これはVBの基本的な文法ですから、出来れば自分で気付いて欲しいものです。

    .Parameters.Append prm
が正解と思います。・・・未検証です。
勢いで()を書いたようです。

もう一度書きますが、そのものズバリは書く気ないし、手取り足取り
する気もありませんので、自分で調べられる事は調べてから質問願います。

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