過去の桐井戸端BBS (桐ver.7)
776 IsDataの代わりは? 松本 幸一 1998/12/9-16:37
洋書の輸入販売をしております。
海外の版元からのデータベースを外部データベースとして桐で管理したいのです。
ODBCを通じてデータの読込は出来ました。
版元からはAccessへのデータ変換についての資料を送ってくれました。
複数のテーブルにリレーションをかけた後にAccessの関数IsDataを使って
データの抽出を行っています。
IsData([テーブル名]![フィールド名])で抽出条件が0(ゼロ)になっています。
これを桐にどう置き換えていいのかわかりません。

私自身よく分かっていませんが、一応分かり易いように書いたつもりです。
ご不明の点はご面倒でも投稿の中でご質問下さい。

よろしくお願いいたします。
782 Re: ikjun 1998/12/9-21:34
記事番号776へのコメント
 松本さんこんばんは!先日は失礼しました。

>複数のテーブルにリレーションをかけた後にAccessの関数IsDataを使って
>データの抽出を行っています。
>IsData([テーブル名]![フィールド名])で抽出条件が0(ゼロ)になっています。
>これを桐にどう置き換えていいのかわかりません。

ACCESSのHELPより
構文
IsDate(expression)
引数 expression は必ず指定します。引数 expression には、日付や時刻として認識で
きる日付式または文字列式を含むバリアント型 (Variant) の式を指定します。
解説
 IsDate 関数は、指定した式が日付である場合、またはその式を日付に変換できる場合は、真 (True) を返します。
変換できない場合は、偽 (False) を返します。
MicrosoftWindows で有効な日付の範囲は、西暦 100 年 1 月 1 日から西暦 9999 年 12 月 31 日までです。
この範囲は、オペレーティング システムによって異なります。

 確かに同じ関数はありません。
他の関数で代用するしかありませんが、ここで問題なのは、松本さんが変換したフィールドの型を、なんにしているかだと思います。
IsDateでは元のデータはバリアント型ですが、桐にバリアント型はありません。
したがって、日時型か文字列型どちらかだと思いますのでか確認して下さい。

 IsData([テーブル名]![フィールド名])=0というのはフィールドが日付に変換できないものを選択しなさいという意味だと思います。

 したがって、すでに日付に変換しているのなら、このままやっても意味がないような気がします。

 もしかして、変換に失敗して、空白になっているかも知れないですし、あるいはわけのわからない変換をしているかもしれません。

 それによって、やることはかわるような気がします。

 次に文字列変換なのですが、これであれば文字列を日付に変換する関数を使い、変換できずに「未定義値」を返すデータを選択すればいいでしょう。

 とりあえず、考え方だけ述べてます。実際にやって問題があったり、わからないようであれば、再投稿して下さい。
789 出来ました。ありがとうございます。 松本 幸一 1998/12/10-10:39
記事番号782へのコメント
ikjunさんありがとうございます。
関数を扱うのが不慣れのため次回に続き気がつけば簡単なことをお答え下さい
本当にありがとうございます。

> 確かに同じ関数はありません。他の関数で代用するしかありませんが、ここ
>で問題なのは、松本さんが変換したフィールドの型を、なんにしているかだと
>思います。IsDateでは元のデータはバリアント型ですが、桐にバリアント型
>はありません。したがって、日時型か文字列型どちらかだと思いますのでか確
>認して下さい。
>

また、一度に出来ると考えてしまい、計算式の中で全てを行おうとしました。
ご指摘があったとおりまずデータの型を決めなければいけないのですね。

とりあえず
#文字列(フィールド名)で文字列に変換して
絞り込み条件で
#UNDEFとしたところ簡単に出来ました。
もっと勉強をしなければいけませんね。
でもまたお世話になると思いますので、懲りずにお願いいたします。
ありがとうございました。

戻る