• 締切済み

下記質問Vol.2です

strSQL = "insert into 商品マスタ values(" & txtループ(0).Text & ",'" & _ txtループ(1).Text & "'," & txtループ(2).Text & ")" strSQL2 = "update 商品マスタ set 商品名=" & "'" & txtループ(1).Text & "'," & "単価=" & _ txtループ(2).Text & " where " & "商品ID=" & txtループ(0).Text If txtループ(0).Text = "" Then MsgBox "商品IDに何かを入力してください" txtループ(0).SetFocus Exit Sub End If If txtループ(1).Text = "" Then MsgBox "商品名に何かを入力してください" txtループ(1).SetFocus Exit Sub End If If txtループ(2).Text = "" Then MsgBox "単価に何かを入力してください" txtループ(2).SetFocus Exit Sub End If vol.3へ 関連URL:http://www.okweb.ne.jp/kotaeru.php3?q=160999

みんなの回答

回答No.1

管理者より: 続きの質問があるのでそちらをご参照下さい

参考URL:
http://www.okweb.ne.jp/kotaeru.php3?q=161004

関連するQ&A

  • 下記質問Vol.3です

    If intSr = 1 Then intRes = MsgBox("追加してもO.K.ですか?", vbYesNo + vbQuestion) If intRes = vbYes Then With cmd .ActiveConnection = cn .CommandType = adCmdText .CommandText = strSQL .Execute End With Call 状態変化(2) End If Else intRes2 = MsgBox("更新しても良いですか?", vbYesNo + vbQuestion) If intRes2 = vbYes Then With cmd .ActiveConnection = cn .CommandType = adCmdText .CommandText = strSQL2 .Execute End With Call 状態変化(2) End If End If End Sub よろしくお願いします。 関連URL:http://www.okweb.ne.jp/kotaeru.php3?q=160999 http://www.okweb.ne.jp/kotaeru.php3?q=161003

  • ユーザーフォームが閉じたいのですが

    皆様こんにちは。 ExcelVBAを使ってユーザーフォームを作っています(初心者)。 どうしてもわからないので教えてください。 ちなみに、以下のように組んでいます。 Private Sub 商品区分txt_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) If IsNumeric(商品区分txt) = False Then   MsgBox "商品区分は数値を入力してください", , "商品区分エラー"   Cancel = True   Exit Sub End If If 商品区分txt < 1 Or 商品区分txt > 100 Then   MsgBox "商品区分は1~100までの値で入力してください", , "商品区分エラー"   Cancel = True   Exit Sub End If End Sub 説明させていただくと、「単価変更」というボタンを配置しています。 そのボタンをクリックするとユーザーフォームが立ち上がります。 商品区分と単価変更率を入力するテキストボックスがあります。 両方を入力後「単価変更実行」というボタンを押すようになっています。 すると指定した商品区分の商品の単価が変更されるようになります。 ちなみに、「終了」ボタンもあります。 商品区分は1~100まであり、その範囲外の場合と数値以外が入力された場合はエラーメッセージがでるようになっています。 たとえば、商品区分に200を入力するとメッセージが出て次のコントロールにいけないようになっています。 そこで200を消します。そして、「とりあえず終了したい」となり、終了ボタンを押してもエラーメッセージが出てしまいます。 このメッセージは出したくありません。 出さないようにするにはどうしたらいいでしょうか? BeforeUpdateじゃなく何か別のイベントを選ぶといいのでしょうか? ちなみに、終了ボタンはUnload Meとしてあるので通常は閉じることは可能です。 長文ですみません。よろしくお願いします。

  • ユーザーフォーム データ消去の時の処理

    環境:Excel2002です ユーザーフォームのテキストボックスの入力チェックをしています Rem**************** Rem TextBox5 Check Rem**************** Private Sub TextBox5_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) If Len(Me.TextBox5.Text) = 0 Then '未入力Check If IsNumeric(Me.TextBox5.Text) = False Then '数値入力Check MsgBox "数値で入力してください", _ vbExclamation, "納品書作成ツール" Me.TextBox5.SetFocus Exit Sub End If MsgBox "入力してください", _ vbExclamation, "納品書作成ツール" Me.TextBox5.SetFocus Exit Sub End If Me.TextBox5.Text = Format(Me.TextBox5.Text, "#,##0") End Sub 入力したデータを消去して Enterキーを押すか、マウスでクリックした時のいずれでも Len(Me.TextBox5.Text) = 0 と認知されて "数値で入力してください"のメッセージが表示されてしまいます このメッセージが出ないようにするにはどうしたらいいのでしょうか ご教示願います

  • Access 日付範囲の条件指定

    いつも質問ばかりですいません。 指定の日付範囲外の値に対してメッセージを出して再入力させたいのですが上手くいきません。 《条件》 今日より先は NG 今日より2日以上前は NG 1日前:OK 今日:OK Dim txt01 As Date ' Dim txt02 As String ' Dim txt03 As Integer Dim ckDate As Date ckDate = Date - 2 '日付のチェック If IsNull(Me.txt01) Then 'Nullチェック MsgBox "txt01=Null" Me.txt01.SetFocus Exit Sub ElseIf IsDate(Me.txt01) <> True Then MsgBox "日付形式ではありません。" Me.txt01.SetFocus Exit Sub ElseIf Me.txt01.Value < Date Then '前チェック Debug.Print Me.txt01.Value MsgBox "今日より先" Me.txt01.SetFocus Exit Sub ElseIf Me.txt01.Value <= ckDate Then MsgBox "2日以上前!" Me.txt01.SetFocus Exit Sub End If 2番目の、Elseifからの日付範囲の条件設定が上手くいきません。 Me.txt01.valueの後ろを"<"を">"にしたり、"="を付けたりしましたが、希望通りになりません。 多分、もっとスマートな書き方が有るとは思うのですが、あとあとメンテナンスしやすい書き方をお教え頂けたら幸いです。

  • エクセル

    下記のようなマクロを作成しましたが、実行するとエラーメッセージ(コンパイルエラー SubまたはFunctionが定義されていません)が表示され止ってしまいます。 解決方法を御指導お願い致します。 Private Sub CommandButton2_Click() '得意先登録ダイアログで登録ボタンをクリック時実行 Dim check As Long '重複の有無(=0:重複せず,>0:重複) Dim insertRow As Long '挿入行位置 '入力必須項目のチェック If koudo.Text = "" Then MsgBox MsgBox "得意先コードを入力してください", vbExclamation, "入力エラー" koudo.SetFocus Exit Sub End If If syamei.Text = "" Then MsgBox "得意先名を入力してください", vbExclamation, "入力エラー" syamei.SetFocus Exit Sub End If '重複チェック On Error Resume Next check = 0 check = WorksheetFunction.Match(clnt(koudo.Text), Range("得意先一覧").Columns(2), 0) On Error GoTo 0 If check > 0 Then MsgBox "この得意先コードは、すでに入力されています", vbExclamation, "入力エラー" koudo.SetFocus Exit Sub End If Sheets("得意先マスター").Unprotect With Range("得意先一覧") '最下行に一行挿入する insertRow = .Rows.Count .Rows(insertRow).Insert Shift:=xlDown 'データをセルに入力する .Cells(insertRow, 1) = tourokubi.Text .Cells(insertRow, 2) = koudo.Text .Cells(insertRow, 3) = syamei.Text .Cells(insertRow, 4) = huri.Text End With Sheets("得意先マスター").Protect Unload 得意先登録ダイアログ End Sub

  • ACCESS

    現在以下のシステムを検討しています。 (1)ログインフォームと(2)トップフォーム(3)注文フォームが別々に存在しており、 (1)ログインフォームは  ・ログインID入力用のテキストボックスが一個  ・パスワード入力用のテキストボックスが一個  ・ログインボタンが1個  設置されています。 以下はログインボタンクリック時に動作するプログラムです。 Private Sub cmdLogIn_Click() Dim Res If IsNull(Me.txtID) Then MsgBox "IDを入力してください" Me.txtID.SetFocus Exit Sub End If If IsNull(Me.txtPass) Then MsgBox "パスワードを入力してください" Me.txtPass.SetFocus Exit Sub End If Res = DLookup("パスワード", "T顧客", _ "顧客ID='" & Replace(Me.txtID, "'", "''") & "'") If IsNull(Res) Then MsgBox "該当するIDはありません。正しいIDを入力してください。" Me.txtID.SetFocus Exit Sub End If If Res = Me.txtPass Then DoCmd.OpenForm "注文フォーム" '----ID,pass合致でフォームを開く。 Me.txtID = Me.txtID2 Me.txtPass = Me.txtPass2 DoCmd.Close acForm, "Fログイン" Else MsgBox "パスワードが異なります。", vbOKOnly + vbCritical Me.txtPass.SetFocus End If End Sub (2)トップフォームは  商品のリストが画像付き(商品一個につき画像一個)  で示され、画像を押すと商品別に作成してある注文フォームに進むのですが、  ログイン完了していないとログインを促すメッセージが出て注文フォームが開かないよう  にしています。  トップフォームにはテキストボックスを2個不可視の状態で配置しております。  以下は商品画像に埋め込んであるコマンドです。 Private Sub 商品画像 1_Click() Dim Res If IsNull(Me.txtID) Then MsgBox "ログインしてください" Exit Sub End If If IsNull(Me.txtPass) Then MsgBox "ログインしてください" Exit Sub End If If Res = Me.txtPass Then DoCmd.OpenForm "商品名" '----ID,pass合致で注文フォームを開く。 End If End Sub   (3)注文フォームは  ・数量選択のコントロールボックス  ・注文ボタン  ・キャンセルボタン  を設置しています。 【以下が質問内容になります】 「ロフインフォーム」内の入力値(テキストボックスに入力されていたIDやパスワード値)を注文フォーム内のテキストボックスに取得させる(あるいは設定させる)にはどのようにすればよいのでしょうか? 注文フォームにはテキストボックス2個( ID入力用と Password入力用)を不可視で配置しています。こちらのテキストボックス2個については手動入力は行わず、注文フォームが開いた際にログイン時の ID, Paswordがテキストボックスの中に自動的に入力あるいは設定されるようにしたいのですが、どのようにすればよいかがわかりません。 因みにログイン ID,Passwordは複数セットあり、ユーザーがログイン完了後、注文フォームを閉じるまでの間は 同一のID, Paswordの内容を保持したいと考えています。 上記の中にID,Paswordを保持させるようなコードを入れることは可能でしょうか? 注文フォームを開く際のコードに何か入れることができるのではないかと考えていたの ですが、よい案が浮かびません。 他によいやり方などがあれば教えていただけますでしょうか? よろしくお願いします。

  • [コンパイルエラー 修飾子が不正です]

    ユーザフォームに「ユーザ名」を入力します。  (1)テキストボックスの入力有無の確認  (2)ユーザ名の重複の確認 上記を実行させようとしているのですが、「コンパイルエラー 修飾子が不正です」が表示 されてしまいます。 にわか覚えのVBAでどうしたらよいか・・わかりません。 ご教授願います。。m(__)m。。 **********以下 '[登録ボタン]を押した時の処理 Private Sub user_touroku_button_Click()   ←★ここでエラー発生!! '------------------------------------------------- Dim check As Long '重複有無 Dim rowsCount As Long '表の現在行数 '必須項目のチェック(ユーザ名) If user_txt.Text = "" Then MsgBox "ユーザ(案件)名を入力してください。", vbExclamation, "入力エラー" user_txt.Text.SetFocus Exit Sub End If 'ユーザ名の重複チェック On Error Resume Next check = 0 check = WorksheetFunction.Match(user_txt.Text, Range("ユーザ一覧").Columns(5), 0) On Error GoTo 0 If check > 0 Then MsgBox "このユーザ(案件)名はすでに登録されています", vbExclamation, "重複エラー" user_txt.Text.SetFocus Exit Sub End If '----------------------------------------------------- よろしくお願いします。

  • 効率の良いテキストボックスの検知について

    VB6の初心者です。質問させていただきます。 画面上に5つのテキストボックス(TEXT1、TEXT2、TEXT3、TEXT4、TEXT5)と 1つのコマンドボタン(Cmd_SAVE)があり、 画面上の5つのテキストボックスをすべて記入し、 コマンドボタンを押すと、登録確認のメッセージボックスが表示され、 OKボタンを押すと、サーバへ転送され、 画面上のテキストボックスにひとつでも空欄があると、どのテキストボックスが 空欄であるかを示すメッセージが表示される処理をさせています。 そこで質問なのですが、今、メッセージボックス、登録処理は出来るようになったのですが、 とても処理の効率が悪い、もっと空欄を確認するのにすっきりとしたコードはある、と知り合いに言われました。 おそらく、繰り返し等を用いると思うのですが、メッセージにそれぞれのオブジェクト名を代入するやり方がわかりません。 下記が今のコーディングです。 Private Sub Cmd_SAVE_Click()   If TEXT1.Text = "" Then      MsgBox "TEXT1が登録されていません", vbOKOnly, "警告"     Exit Sub   End If   If TEXT2.Text = "" Then      MsgBox "TEXT2が登録されていません", vbOKOnly, "警告"     Exit Sub   End If   If TEXT3.Text = "" Then      MsgBox "TEXT3が登録されていません", vbOKOnly, "警告"     Exit Sub   End If   If TEXT4.Text = "" Then      MsgBox "TEXT4が登録されていません", vbOKOnly, "警告"     Exit Sub   End If   If TEXT5.Text = "" Then       MsgBox "TEXT5が登録されていません", vbOKOnly, "警告"     Exit Sub   End If   If MsgBox("入力データを登録しますか?", vbOKCancel, "登録確認") = vbCancel Then     Exit Sub   End If   End If ~登録処理~ End Sub どのような書き方がきれいで、効率的なコーディングなのでしょうか? ご教示お願いします!

  • エクセルVBAについて、ご教授お願いします。

    表を作成しました。      1 商品名 商品区分  単価     2 ミカン   1        \50  3 リンゴ  2         \80 4 モモ   8        \100  Msgboxに商品区分と単価上昇率を入力し、コマンドボタンの単価変更をクリックすると、 エクセル(商品区分、単価)のデータを読み下記の条件で実行します。 ------------------------------------------------------------------------------------ A.単位上昇率に関してエラーチェックを行います。 'B.エラーが見つかった場合にのみ、対象商品区分の単位上昇率を元にワークシート上の明細を更新する 'C.処理条件をメッセージボックスにて表示する。 ------------------------------------------------------------------------------------- どうしても思うような処理を作成できず悩んでいます。 良い方法をご存じの方がいらっしゃいましたら、どうかお教えください。 Option Explicit Sub ユーザーフォーム表示() 'P79 単価変更画面.Show End Sub '単価変更版 '------------------------------------------- 'A.単位上昇率に関してエラーチェックを行います。 'B.エラーが見つかった場合にのみ、対象商品区分の単位上昇率を元にワークシート上の明細を更新する 'C.処理条件をメッセージボックスにて表示する。 '---------------------- Private Sub 終了_click() End End Sub Private Sub 商品区分_change() End Sub Private Sub 単価上昇率_change() End Sub Private Sub 単価変更_Click() Dim i As Long Dim cut As Integer Dim 単価上昇率 As String Dim 商品区分 As String If IsNumeric(単価上昇率) = False Then MsgBox ("数値を入力して下さい。") 単価変更画面.単価上昇率.SetFocus i = Cells(i, 4) End If i = 3 cut = 0 Do While Cells(i, 4) <> "" If Cells(i, 4) = 単価変更画面.商品区分.Text Then   Cells(i, 6) = Cells(i, 6) * (1 + 単価変更画面.単価上昇率.Text / 100) cut = cut + 1 End If    i = i + 1    Loop If cut = 0 Then MsgBox ("該当する商品は存在 しませんでした。 ") 単価変更画面.商品区分.SetFocus Else MsgBox (cut & "件の明細を変更しました。") End If End Sub

  • ExcelのExitイベントについて

    こんにちは。 Excel VBA初心者です。 Formを作成し、Form上に、テキストをいくつか配置しています。 日付を入力するテキストが2つあり、それぞれ、以下の名前にしています。 オブジェクト名:txt開始日、txt入力日  3つVBAで設定をしたのですが、(2)がうまく動きません。 (1)年を入力しなくても、自動的に年(4ケタ表示)を表示する。→これは、どこかのサイトで、紹介されていた物を使用させて頂いています。 (2)txt開始日に日付を入力し、txt入力日に入力した日付より大きかったら、 MsgBOXを表示し、txt入力日の値を空白にし、再度入力するようにする (3)txt開始日が空白で、txt入力日に入力は可。 (2)が、私の作成したコードだと、うまく動かず、 ちゃんとtxt開始日<txt入力日で入力していても、 MsgBOXのメッセージが出てしまったり、 MsgBOXが表示され、再度、txt入力日に、 txt開始日<txt入力日になる値を入力しても、 同じMsgBOXが出てしまいます。 どなたか解決策を教えて頂けますでしょうか。 よろしくお願いします。 ------------------------------------------------- ------------------------------------------------- Private Sub txt予定日_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim dteDate As Date If txt予定日.Value = "" Then txt予定日.Value = "" Exit Sub End If If IsNumeric(Left$(txt予定日, 4)) <> True Then txt予定日 = Year(Date) & "/" & txt予定日 End If If IsDate(txt予定日) = True Then dteDate = CDate(txt予定日) ' 実数はTagに格納 txt予定日.Tag = CLng(dteDate) Else MsgBox "予定日入力ミスです。再度入力してください。" End If If txt確認日.Value <> "" And txt予定日.Value <> "" And txt確認日.Value > txt予定日.Value Then MsgBox "予定日と確認日の日付に間違いがあります~。再入力お願いします。" txt予定日.Value = "" Cancel = True Exit Sub End If End Sub

専門家に質問してみよう