• ベストアンサー

Nullの使い方が不正です。

x0000xの回答

  • ベストアンサー
  • x0000x
  • ベストアンサー率52% (67/127)
回答No.1

Dim ret As String にはNULLを格納できないことからエラーが発生しているのでは? If length <> 10 Then  ~ Cancel = True exit sub 'エラー時は以下を処理しない。 End If 10桁エラーと重複エラーの両方をメッセージ表示したいのであれば Dim ret As Variant が良いでしょう。

8607
質問者

お礼

ありがとうございました! お蔭様で上手く機能しました!! データ型をもっと勉強していきたいと思います☆

関連するQ&A

  • VBA テキストボックスを選択状態にしたい

    Access2003 VBA で開発しています。初心者です。 テキストボックスに入力した値が、不正な値の場合、 次のオブジェクトに移動せずに、その値を選択状態にしたいのですが、 やり方が分かりません。 txtコード.SetFocus txtコード.SelStart = 0 txtコード.SelLength = Len(txtコード.Value) としてもうまくいきません。 初歩的な質問ですが、解決法をご教授いただければ幸いです。 よろしくお願いいたします。

  • コピー時のエラー表示を変更したい

    コードビルダ選択時での基礎知識が不足しています。ご面倒をお掛けしますが、宜しくお願いします。 テキストボックスのデータをコピーする際の方法として、イベントの「ダブルクリック」で「コードビルダ」を選択して下記を記述しています。うっかりデータがないテキストボックスをダブルクリックした時にでるエラー表示を「データがありません」に変更したいと思っています。ご指導をお願いします。 Private Sub 用例_DblClick(Cancel As Integer) Me!用例.SelStart = 0 Me!用例.SelLength = Len(Me!用例.Text) DoCmd.RunCommand acCmdCopy End Sub 以上、宜しくお願いします。

  • 困っています

    ACCESSのフォームにテキストボックスとコマンドボタンをつくり テキストボックスのBeforeUpdateに If Len(Me.テクスト) = 1 Then MsgBox "Error" End If コマンドボックスのClickイベントに MSGBOX "クリック" のように書いたとき テキストボックスに1文字入れてコマンドボタンを押すと 先に "Error"が出てしまいます コマンドボタンをクリックしたときにクリックイベントを先に走らす方法って有るのでしょうか? もしくはテキストの BeforeUpdate か LostFocus イベントでコマンドボタンをクリックしたのを判別する方法って有るのでしょうか? よろしくお願いします

  • 「エラー:…は宣言されていません。」について

    下記のようなスクリプトコードがあります。 <html> <head> <%@ page contentType="text/html; charset=Windows-31J" %> <meta http-equiv="Cache-Contorol" content="no-cache"/> <meta http-equiv="Expires" content="-1"/> <title>test</title> <script type="text/javascript"> <!-- function dispText(id) { var filePath = document.getElementById("fileMei").value; var ret; if (!filePath) { return ret; } var fileTypes = filePath.split("."); var len = fileTypes.length; if (len === 0) { return ret; } ret = fileTypes[len - len]; var filename; if (!ret){ return ret; } filename = ret.split("\\"); len = filename.length; if (len === 0) { return ret; } ret = filename[len - 1]; document.getElementById(id).value = ret; } --> </script> </head> (一部抜粋) <logic:iterate name="fileInfoForms" id="fileInfoForm" indexId="index"> <tr> <bean:define id="idx">bunsyoMei<bean:write name="index" /></bean:define> <td class="listdetail<%=index%2%>" id="<%=index%2%>"> <html:text name="fileInfoForm" property="bunshoMei" styleId="idx" size="72" maxlength="50" style="ime-mode:active" indexed="true"/></td> <td class="listdetail<%=index%2%>"> <input type="file" id="fileMei" name="fileInfoForm[<%=index%>].fileMei" onkeydown="return checkEvent();" onbeforeeditfocus="return false;" onchange='<%="dispText("+idx+")"%>'/> --(1) </td> </tr> </logic:iterate> 参照ボタンよりファイルを選択し、ファイル名をテキストに表示したいのですが (1)の箇所で「エラー:'bunsyoMei0'は宣言されていません。」と表示されます。 回避させる方法はありますか?

  • 空白の認識

    VB6.0で開発しています。 EXCELのD2のセルが空白の時の処理をしたいのですがうまくいきません。 If exl.Cells(2, 4).Value = "" Then Ret = MsgBox("棚卸数が入力されていません", vbInformation + vbOKOnly, Me.Caption) End If 上記のように書くと空白時も空白では無いときもメッセージが出てしまいます。 何故でしょうか?教えてください。

  • データシートフォームでのSellength

    Access2010 データシートフォームの先頭のタブ位置(タブストップ0)に フォーカス時に全選択状態にしたいテキストボックスがあり、 Private Sub テキスト_Enter() Me!テキスト.SelStart = 0 Me!テキスト.SelLength = Nz(Len(Me!テキスト.Text)) End Sub のモジュールを入力しています。 普段はモジュール通りに機能するのですが、一つ前のレコードの最後のタブからEnterを押して レコード移動後このテキストボックスにフォーカスが移った場合に限り、全選択にならない事があります。 (このフォームではレコード移動時のモジュールは使用していません) ブレークポイントを入れて途中確認したところ内部上ではSelLengthの値は文字数通りになっているのですが、実際の画面ではおかしいままなので余計に分かりません 一応SendKeys "{F2}"に置き換えると全選択になったのでこれでやり過ごしているのですがどうすれば元のモジュールで正しく動いてもらえるのでしょうか?

  • 「Cancel = True」とはどういう意味でし

    ダブルクリックしたら全体を選択する方法をgooで調べていたら、 http://okwave.jp/qa/q4899232.html に辿りつきました。 Private Sub txt00_DblClick(Cancel As Integer)   Me.txt00.SelStart = 0   Me.txt00.SelLength = Len(Me.txt00.Text)   Cancel = True End Sub で、やりたいことが行えたのですが、一つ疑問があります。 Cancel = True はどういう意味なのでしょうか? 試しに、Cancel = Trueの部分をコメントアウトしてみたら、 テキストボックスが選択状態になりませんでした。 ということは、「Cancel = True」は、「実行!」みたいな意味なのでしょうか? ご回答よろしくお願いします。

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

    環境: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 と認知されて "数値で入力してください"のメッセージが表示されてしまいます このメッセージが出ないようにするにはどうしたらいいのでしょうか ご教示願います

  • カンマの付け方

    ファンクションの中で記述した数式の結果に 三桁区切りでカンマをつけたいのですが、 どうすればよろしいのでしょうか。 lstArariYosan.value = Math.floor(lstUriageYosan.value.replace(",","") * lstArariRitu.value); 今は、こんな感じでカンマを外して計算しています。 計算結果を出した後、逆にカンマをつけてから 表示するようにしたいのですが、 何かいい方法はありますか? また、下記がカンマ編集のメソッドの様ですが、 これを使って表示しようとするとエラーになります。 function addComma(su) {  var ret="";  var fugou="";  if(su.length>0 && su.substring(0, 1) == "-") {    ret = su.substring(1, su.length);    fugou = "-";  } else { ret = su; }  if(ret.length>3){    for(i=3;i<ret.length;i+=4){    var moji=ret.substring(0,ret.length-i)+','+ret.substring(ret.length-i,ret.length);    ret = moji;  } } return (fugou + ret); }

  • Access Dlookup関数について

    Dlookupで悩んでいます。 ExcelのVlookと違い、“数字”のコードでなければ引っ張ってこれないのでしょうか? 以下、がその内容です。 「T_得意先マスタ」の得意先コードフィールドに aaa というコードがあり、得意先名フィールドに ○○商事 とあります。 どうやってもできないのです。 なぜか、aaa ではなく、数字(例. 123)にすると出ます。 教えてください。 Private Sub 得意先コード_AfterUpdate() Dim a As Variant, b As String b = "得意先コード = " & Me![得意先コード] a = DLookup("得意先名", "T_得意先マスタ", b) If IsNull(a) = True Then Me.テキスト1.Value = "該当がありません。": Me![得意先コード] = Null Else Me.テキスト1.Value = a End If End Sub