Excel VBA質問箱 IV

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

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


51128 / 76738 ←次へ | 前へ→

【30484】最終行取得のところで
質問  りんご3  - 05/10/28(金) 16:10 -

引用なし
パスワード
   度々お助けいただきましてありがとうございます。
またまたお知恵を拝借させていただきたいのですが、

表にデータを入力してボタンをおすとデータベースに登録する。というものを作っていまして、その表にはデータ入力できる欄が15行くらいありまして、
一行目から順番に一行もとばさずいれた時はいいのですが
一行とばすとスペースの前までのデータだけ登録でき、
スペース後のデータが登録されません。
スペースがあってもデータを取得できる方法か、スペースがあいて入力が
あった時はエラーになって順番に入力しないといけないようなものにしたいのですが・・・・
よろしくお願いいたします。
ちなみに下記プログラムのどこにどう書いたらいいのか教えてください。
Sub btn登録_Click()

 Dim oraDS As OracleInProcServer.OraDynaset 'OraDynasetオブジェクト
 Dim selCmd As String            '選択用のSQL文
 Dim delCmd As String            '削除用のSQL文
 Dim n As Integer              '注文明細の個数
 Dim i As Integer              'カウンタ
 
 'データベースの接続を確認する
 If oraDB Is Nothing Then
  MsgBox "データベースに接続していないため、データを登録できません", vbOKOnly, "注文書作成"
  Exit Sub
 End If
 
 '入力したデータ数(c13:C27)を調べる
 n = Application.WorksheetFunction.CountA(Range("C13:C27"))
 If n = 0 Then
  MsgBox "明細を入力していないため登録できません", vbOKOnly, "注文書作成"
  Exit Sub
 End If
 
 'トランザクション開始
 oraSS.BeginTrans
 
 '既存の注文書のとき
 If Range("I1").Value = "既存" Then
  '[T_SUB]テーブルから削除
  delCmd = "DELETE FROM T_SUB " & "WHERE ORDER_NO = '" & Range("D8") & "'"
  oraDB.ExecuteSQL delCmd
  
  '[T_MAIN]テーブルから削除
  delCmd = "DELETE FROM T_MAIN " & "WHERE ORDER_NO = '" & Range("D8") & "'"
  oraDB.ExecuteSQL delCmd
  End If
 
 '[T_MAIN]テーブルにレコードを追加
 selCmd = "SELECT * FROM T_MAIN"
 Set oraDS = oraDB.CreateDynaset(selCmd, ORADYN_DEFAULT)
 
 oraDS.AddNew
 oraDS.Fields("ORDER_NO").Value = Range("D8").Value   '注文番号
 oraDS.Fields("ORDER_DAY").Value = Range("F8").Value  '注文日
 oraDS.Fields("SNO").Value = Range("A1").Value     '連番
 oraDS.Fields("KO_NO").Value = Range("D9").Value    '顧客番号
 oraDS.Fields("TAN_NAME").Value = Range("I4").Value   '担当者
 oraDS.Fields("TAX").Value = Range("I5").Value     '消費税率
 oraDS.Fields("PAYMENT").Value = Range("I8").Value   '支払い方法
 oraDS.Fields("DELIVER").Value = Range("I9").Value   'お届け方法
 oraDS.Fields("BIKO").Value = Range("B33").Value    '備考
 oraDS.Update
 Set oraDS = Nothing
 
 '[T_SUB]テーブルにレコードを追加
 selCmd = "SELECT * FROM T_SUB"
 Set oraDS = oraDB.CreateDynaset(selCmd, ORADYN_DEFAULT)
 
 For i = 0 To n - 1
  oraDS.AddNew
  oraDS.Fields("ORDER_NO").Value = Range("D8").Value     '注文番号
  oraDS.Fields("SHO_NO").Value = Range("C" & 13 + i).Value  '品番
  oraDS.Fields("NUM").Value = Range("H" & 13 + i).Value   '数量
  oraDS.Update
  Next i
 
  Set oraDS = Nothing
 
  'コミット
  oraSS.CommitTrans
 
  '後処理
  MsgBox "登録しました", vbOKOnly, "注文書作成"
0 hits

【30484】最終行取得のところで りんご3 05/10/28(金) 16:10 質問
【30486】Re:最終行取得のところで Kein 05/10/28(金) 16:20 回答
【30488】Re:最終行取得のところで りんご3 05/10/28(金) 16:36 質問
【30493】Re:最終行取得のところで Kein 05/10/28(金) 17:23 回答
【30495】Re:最終行取得のところで りんご3 05/10/28(金) 17:40 お礼
【30494】Re:最終行取得のところで hine 05/10/28(金) 17:38 発言

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