• ベストアンサー

入力の簡略化

kurodai2の回答

  • kurodai2
  • ベストアンサー率38% (77/202)
回答No.4

>保存ツアーNo = Me!ツアーNoの場所で型が一致しませんって出ました。 ツアーNoのコントロールソースに対応する項目は テーブルでは どのデータ型になっていますか? NOなので、短絡的に数値と判断したのですが、もしテキスト型であれば Dim 保存ツアーNo As Integer を Dim 保存ツアーNo As String にしてください。 他の型であれば、それにあった型で宣言してください。

Armadillo5
質問者

お礼

うそです!!!! できました!”1!! 一番最初にタイトルが空白の状態で保存ボタンを押すとNullが不正だとでます。これの対処の仕方をお願いいたします!

Armadillo5
質問者

補足

クリアしました! つ、次は 保存ツアータイトル = Me!ツアータイトル でNullの使い方が不正ですとなります。 ほんまにすみません。。 Private Sub ツアーNo_AfterUpdate() If Me![招待者ID] = 0 Then Me![招待者ID] = Nz(DMax("招待者ID", "旅行招待者管理テーブル")) + 1 End If DoCmd.SetWarnings False '警告メッセージをオフにします。 DoCmd.OpenQuery "ツアー情報抽出テーブル削除クエリ" ' 削除クエリーを実行します。 ' 追加クエリーを実行します。 DoCmd.OpenQuery "ツアー情報抽出テーブル作成クエリ" DoCmd.SetWarnings True '警告メッセージをオンに戻します。 Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim stCri As String Set cn = CurrentProject.Connection rs.Open "ツアー情報抽出テーブル", cn, adOpenDynamic, adLockOptimistic '文字列型データ検索 stCri = "[ツアーNo]='" & ツアーNo & "'" rs.Find stCri '該当するレコードが無い場合は、メッセージボックスを表示し、抜け出す If rs.EOF Then MsgBox ("該当データがありません。確認してください!!") Else Me!団体名 = rs!団体名 Me!ツアータイトル = rs!ツアータイトル End If rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub これと何か関係があるのでしょうか?

関連するQ&A

  • ACCESSのフォーム

    はじめまして。 個人データの管理でACCESSで名簿入力をしています。 入力のフォームを開く際に、 Private Sub Form_Open(Cancel As Integer) Dim Textname As TextBox Dim strmsg As String Dim varname As Variant Set Textname = Me.入力者表示 strmsg = "入力者氏名を入力して下さい" varname = InputBox(strmsg) '入力なき時は、フォームオープンをキャンセルします。 If varname = "" Then Cancel = True End If Textname = varname End Sub として、入力者の氏名を入力しています。 詳細は作成者でないので分かりかねますが、 フォームで非連結のテキストボックスを作成して、 なにかしら表示ができるようになっているみたいです。 これはフォームを開く際に出てきた小さい窓に一度だけ入力者氏名を 入力したら、そのままフォームを閉じるまでその氏名が反映されます。 現在、入力するものにコードというものがあるのですが、これも同じようにできないかと思っています。一日のデータ入力作業では 基本同じコードを使用し、一回一回コードを入力していました。 やはり人間の手によるものですから間違いがあり、 違うコードを入力してしまうと行方不明になってしまうのです。 コードも上記の入力者氏名と同じように、 フォームを開く際に出てくる小窓での入力は可能でしょうか? ちなみに現在商品コードを入力したら、コードの種別タイトルという ものが自動で出力される仕組みになっています。 それも反映されないといけないのです。 なにかお知恵を拝借させていただければと思います。 足りない情報があればご指摘ください。 宜しくお願いいたします。

  • Excel VBA インプットボックス空文字を入力

    いつもお世話になっています。 下記のような入力処理をインプットボックスで行いたいと考えています。 勤務先は場合によっては不要なのでパスして次に移りたいのですが 空文字だとOKをクリックしても、キャンセルをクリックしても処理が終わってしまいます。 勤務先 = InputBox("勤務先を入力") If 勤務先 = "" Then Exit Sub ActiveCell.Value = 勤務先 ActiveCell.Offset(0, 1).Select 氏名 = InputBox("氏名を入力") If 氏名 = "" Then Exit Sub ActiveCell.Value = 氏名 空文字のままOKもしくはキャンセルでも次の処理に移るにはどうしたらよいでしょうか。 お力添えをお願いいたします。

  • OKを押してもキャンセルを押しても、反応しない

    このコード、どこが間違ってるか教えてもらえますか? Sub test() Dim ret As Variant ret = InputBox("タイトルを入力してください。") If TypeName(ret) = "Boolean" Then MsgBox "キャンセルが選択されました" End If End Sub これで、キャンセルボタンを押しても、メッセージボックスが表示されません。 間違えてる部分がわかりません。

  • inputbox のキャンセルの戻り値について(VBA×エクセル)

    VBA初心者で、ユーザフォームにはまだ手出ししたくなく、INPUTBOXで値を取得しているのですが、 INPUTBOXでキャンセルボタンを押したときに、マクロを終了するように書きたいのですが、どのように記述したらよいのでしょうか? INPUTBOXからはどんな値が返ってきているかわからず、 メッセージボックスで確認してみたのですが、空欄なので、 IF RetIPT ="" then マクロ終了 endif としてみたのですが、「マクロ終了」には進んでくれず... 回答をお願いします~

  • InputBox キャンセルボタンが押された時の処理

    こんばんは。 Sub test() Dim タイトル As String タイトル = InputBox("タイトルを入力してください。") If Cancel = True Then Exit Sub ’次のコード・・・ ’次のコード・・・ End Sub このコードを実行した時に 下記のダイアログが出てきて 右のキャンセルボタンを押すと、 「If Cancel = True Then Exit Sub」 でsubステートメントを抜けたいのですが 「Cancel」の部分が 「変数が定義されていません」とエラーになってしまいます。 Dim Cancel As Boolean を追加してキャンセルボタンを押しても TrueではなくFalseになってしまいます。 回避方法を教えてください。 よろしくお願いします。

  • エクセルマクロでinputboxメソッドゼロ入力

    エクセル2007です。 以下のマクロで、inputboxメソッドで質問させると、キャンセルボタンを押すと、うまいぐあいに止まります。 しかし、0を押しても、止まってしまいます。本当は、C2にゼロと表示させたいのです。 Sub 練習() Dim myR myR = Application.InputBox(prompt:="数量を入力しなさい", Type:=1) If myR = False Then Exit Sub Range("C2").Value = myR End Sub

  • inputboxの日本語入力切替について

    VBAのinputbox関数についての質問です inputboxを使ってデータの入力をしたいのですが、日本語入力のONとOFFを自動的に切り替えられる記述はありませんでしょうか。 現在の記述は sub 入力() Dim simei As String simei = InputBox("氏名を入力してください") range("b5").Value = Simei End su のような感じです。inputboxを表示するまえに、言語バーの日本語入力がONの状態になるようにしたいのですが…。よろしくお願いします。

  • マクロ inputbox ブランクで入力した時

    いつも回答して頂きありがとうございます。 InputBoxに何も入力せず、OKを押してしまった場合、マクロの処理を終了させたいのですが、どうしたらよろしいでしょうか?宜しくお願い致します。 Sub 名前を入力する() Dim a As Long a = Application.InputBox("班を数字で入力して下さい。", Type:=1) If a = 0 Then MsgBox "キャンセルされました。", vbOKOnly Exit Sub End If With ActiveSheet .Range("E4:F5").Value = Worksheets("名前一覧").Cells(2, a).Value End With End Sub

  • エクセルVBA、入力しないと閉じないInputBox

    必ず何かを入力しないと閉じないInputBoxを作ろうと思います。 以下のコードで入力がなければ閉じないというか、Line:に戻るので、何度でも現れるInputBoxになるようですが、このやり方は正しいですか? 通常はどうやるのでしょうか? Sub test() Dim a line: a = Application.InputBox("必ず入力して下さい。", "Input!") If Len(a) = 0 Or a = False Then GoTo line MsgBox "有難う。" & a & " ですね。", , "(o。_。)oペコッ" End Sub

  • xlAPPがないと、キャンセルしても無視される

    Sub xlAPPがある場合() Dim xlAPP As Application Dim strPathName As String, vntPathName As Variant Dim strFileName As String Set xlAPP = Application 'ここでわざとESCキーかキャンセルを押す vntPathName = xlAPP.InputBox("参照するフォルダ名を入力して下さい。", , "C:\") If VarType(vntPathName) = vbBoolean Then MsgBox "キャンセルがクリックされました" Exit Sub End If End Sub Sub xlAPPがない場合() Dim strPathName As String, vntPathName As Variant Dim strFileName As String 'ここでわざとESCキーかキャンセルを押す vntPathName = InputBox("参照するフォルダ名を入力して下さい。", , "C:\")      ’無視される If VarType(vntPathName) = vbBoolean Then MsgBox "キャンセルがクリックされました" Exit Sub End If End Sub ************************************************** InputBoxを開いた時にキャンセルするふたつのプロシージャーを比較した時に、 xlAPPがないコードは、キャンセルしても無視されます。 xlAPPがどんな役割をしているのか、 xlAPPがないと、なぜ無視されるのかがわかりません。 あと、二つを比較すると、表示されるInputBoxの形式も違います。 ご教授よろしくお願いします。