
カンマ区切りのテキストファイルをAccessにインポートしたのですが、[NO]というフィールドの、数値のデータ型が文字列型の認識になっており、VBAでそのフィールドの最大値を求めようするとうまくいきません。取り合えず今はクエリでいったんVal関数を使い数値に変えてから利用しています。その際更新クエリを利用しようとしたのですが、うまく行かなかったので、選択クエリで
式:Val([NO])
としてそのフィールドを利用しています。
結構考えたのですが、知識不足でいい方法が浮かびません。もっと良い方法があれば教えてください。お願い致します。M(v_v)M
No.4ベストアンサー
- 回答日時:
やっと原因がわかりました:-)
フィールド名"No"が曲者でした。Accessには、Yes/No型という型があるので、Noとフィールド名はYes/NoのNoと判断されてしまうのです。
予約語と同じフィールド名は大括弧でくくると使用できるので、これでOK.
Sub Max_2()
Dim M_No As Long
M_No = DMax("[No]", "T_Import")
End Sub
お返事遅くなりました!!出来ました(^v^)!
本当にありがとうございます。フィールド名に括弧をつけたりするのは、どうしても省略してしまいがちですが、これからは少し気を付けていきたいと思います!(>v<)!何度も回答して頂いて本当にありがとうございました。
他の皆様もありがとうございます!!
No.3
- 回答日時:
DMax 関数の戻り値が、数値型じゃなくなってるのでしょうね。
型変換関数を使ってやれば大丈夫です。
また、レコードが存在しないことも考えて、Nz 関数も使った方がいいかも。
> M_No = DMax("No", "T_Import")
M_No = CLng(Nz(DMax("No", "T_Import"),0))
この回答への補足
ご返答ありがとうございます。ご指摘頂いたように変更して実行してみたのですが、先ほどまでと同様に値が入らず、Empty値にどうしてもなります。実行した際にどの場合でもエラーにはならないんですが・・・・・(?_?)
全く他に原因があるのでしょうかね??情報が少なく分かりにくい質問で申し訳ございません。
No.2
- 回答日時:
NOフィールドのデータは全て数値に変換できるのでしたら、問題のテーブルをデザインビューで開いて、NOフィールドのデータ型を「数値型」に変えてあげればよいと思います。
インポートする前でしたら、インポートするときのウィザードで、カラムごとのデータ型を指定する画面がありますので、そこで調整できます。
この回答への補足
No1の方、No2の方、ご返答ありがとうございます。申し訳ございませんがまとめて補足をさせて頂きます。最初私もフィールドで数値型にしているので、そのまま利用できると思っていたのですが、下記のように
No1の方、No2の方、ご返答ありがとうございます。申し訳ございませんがまとめて補足をさせて頂きます。最初私もフィールドで数値型にしているので、そのまま利用できると思っていたのですが、下記のように(コードの一部)
Sub Max_No()
Dim Db As Database
Dim Rs As Recordset
Dim M_No As Long
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("T_Import", dbOpenTable)
Rs.MoveFirst
M_No = DMax("No", "T_Import")
Rs.Close: Set Rs = Nothing
Db.Close: Set Db = Nothing
End Sub
とした時にM_Noに最大値が代入されません。(>_<)もっと簡単な見落としをしていますでしょうか??
No.1
- 回答日時:
その [NO] というフィールドの型は文字列型なんですよね?テーブルのデザインビューで [NO] の型を文字列型→数値型(フィールドサイズは長整数型とか整数型とか)にすると自動的に数値に変換されます。
ただし、数値に変換できないデータがあるとエラーになると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) Accessクエリで年月フィールドを年のみで抽出する方法について 2 2022/08/29 18:10
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- その他(データベース) 20万行あるデータを動かしたい 2 2023/06/13 15:21
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Access(アクセス) お世話になります ACCESSを使用しています 下記のクエリデータ(1)があります 商品名 行数 A 1 2022/09/05 08:52
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスで2つの表を1つにし...
-
差込印刷での全角表示について...
-
[AccessXP]VBAのものの本に書...
-
フィールド数をあと1個増やした...
-
アクセス レポートで、並べ替...
-
Word索引一覧について
-
ACCESS のSelect Caseについて
-
カレントフィールドの、青い枠...
-
ACCESS2003 ルック...
-
少し前の、ソフトですが、ひま...
-
ACCESSで、検索文字の有無で別...
-
ACCESS2010 データ一致でテキス...
-
Accessレポートでパラメータ
-
Accessフォームで日付入力
-
ワードファイルの文字数制限ロ...
-
【ACCESS】変換したデータを上...
-
ACCESSのデータを単一化したい
-
ひらがな、カタカナは同じ?
-
Final Cutのタイムフィールドに...
-
Accessのクエリとモジュールで…
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
差込印刷での全角表示について...
-
エクセルにおける「フィールド...
-
クエリで割り算する方法を教え...
-
エクセルデータをワードで差し...
-
Accessのハイパーリンクをクリ...
-
ACCESSのデータに自動で半角ス...
-
カレントフィールドの、青い枠...
-
フィールドの更新がない
-
ACCESS 重複データを1...
-
sqlserverにはグループ集計のfi...
-
ACCESSで条件によってフォーム...
-
「Access2007」でレポートが作...
-
Word差し込み印刷のハイフン(...
-
クエリーで、全角混じりデータ...
-
奇数・偶数ページごとに差し込...
-
Acsess アクセス のクエリで...
-
実行時エラー '3464': 抽出条件...
-
アクセスの操作について
-
アクセスのクエリでパラメータ...
-
Accessの日本語フィールド名
おすすめ情報