- ベストアンサー
フィールドにテキストしか入ってないレコードの抽出方法
- ハイパーリンク型のフィールドにテキストしか入ってないレコードを抜き出す方法を教えてください。
- Not Like '*#*' を使ってもアドレスがNullのレコードを抜き出せません。アドレスがNullのハイパーリンク型のフィールドのレコードを抜き出す方法を教えてください。
- アクセス2003を使っているのですが、ハイパーリンク型のフィールドのアドレスがNullのレコードをどのように抽出するか教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ハイパーリンク型の構成は 表示用テキスト#アドレス#サブアドレス#ポップ用ヒント だったと思います。 詳しくは、http://office.microsoft.com/ja-jp/access-help/HP005188817.aspx にて アドレス部分が無いという事は、 Split(文字列,"#")(1) が存在しないか、空文字列であるか・・・で判別できると思います。 ただ、クエリでは Split(文字列,"#")(1) という書き方が出来ないので、 ユーザ定義関数を作成し、それを利用することになると思います。 標準モジュールに以下記述(一例) Public Function UrlNonCheck(url As Variant) As Boolean UrlNonCheck = False If (Len(Split(url & "#", "#")(1)) = 0) Then UrlNonCheck = True End Function 上記関数はアドレス部分が無かった時に True を返すようにしているので、クエリで SELECT * FROM テーブル WHERE UrlNonCheck([ハイパーリンク]); とすると、アドレス部分を持たない一覧が表示されると思います。 ※ 未検証 ※ 単にハイパーリンク型のフィールドにアドレスを入力した場合、中身は #アドレス# になったと思います。 表示用テキストがなかった場合は、アドレスがそのまま表示されたと思います。
その他の回答 (2)
- m3_maki
- ベストアンサー率64% (296/460)
> クエリの抽出条件に > Not Like "*#*" > を入れてもどちらも該当してしまいます。 アクセスのクエリでは 「#」 は数字1文字を表すワイルドカード文字です。 「#」 という文字そのものを表すには、「[ ]」 で括ります。 アドレス部に、最低でも1文字あることを条件にするなら 「?」 もあった方がよろしいでしょう。 Not Like "*[#]?*"
お礼
ありがとうございました。
- bin-chan
- ベストアンサー率33% (1403/4213)
>Not Like "*#*" "Null"を判定するには「Is Null」 "Nullでは無い"を判定するには「Is Not Null」
お礼
ありがとうございました。
お礼
ありがとうございました。