AccessのデータベースからSELECT * FROM 〜を使って条件にあったデータをい抽出したいのですが、条件に合ったときだけに処理を行いたいのですが、上手くできません。
使うSQL文は、
"SELECT file_name FROM PDF WHERE " & result & " LIKE " & txt &""
です。
LIKEで条件があったときにだけ処理を行いたいです。
resultは最初に1件読み込んでおいたもので、txtはテキストボックスに入力したものです。
どのように変更したらよいのでしょうか?
よろしくお願いいたします。
>resultは最初に1件読み込んでおいたもので、txtはテキストボックスに入力したものです。
具体的にどんなデータが入っているのですか?
resultはPDFのファイルのフルパスを読み込んできます。
txtは文字を適当に打ち込みます。
resultにtxtの文字列があれば処理をしたいのです。
その処理はPDFファイルをPictureBoxに表示させるのですが・・・
SQL文は、ただの文字列ですので
>resultはPDFのファイルのフルパスを読み込んできます。
そのまま解釈すると
"SELECT file_name FROM PDF WHERE D:\Test\Test.pdf LIKE HogeHoge"
ということですか?
SQL文として成り立っていません。
何を説明しているのか理解できません。
>AccessのデータベースからSELECT * FROM 〜を使って条件にあったデータをい抽出したいのですが
関係性もなくなりませんか?
どこが Access のデータベースにあたりますか?
Access にはどんなテーブルが用意されていて、テーブルはどんな構造で、
どんなデータが格納されていて、そこからどのデータが抽出できればいいのですか?
こちらで再現できるような説明をお願いします。
すみません。
C:\Test\Test.pdf LIKE HogeHogeの部分で、C:\Test\Test.pdfの部分はテーブルにデータがあるだけ繰り返して比較します。
HogeHogeの方は変わりません。
何とか、比較出来ているようなのですが、PictureBoxにPDFを表示させるとメモリが不足していますというエラーになってしまいます。
PictureBoxにPDFを表示させることは可能なのでしょうか?
PictureBoxではなく、Webbrowserにしてみては?
Webbrowserを使ったことがないので、使い方がわかりません。
よろしければ、どのように使用するのか教えていただけますか?
Webbrowserコントロールを貼り付けて、コードでPDFファイルをNavigateさせるだけです
詳細はご自身で調べてください
えーと、ちょっと状況を整理させてください。
まず、Accessファイルの中に、「PDF」という名前のテーブルがあるんですよね。
で、PDFテーブルの中には「file_name」というフィールドがある、と。
file_nameフィールドの中には参照したいPDFファイルのフルパスが格納されていて、
テキストボックスに入力した文字列がファイル名に含まれるPDFファイルだけを抽出して、
そのPDFファイルをフォーム上に表示したい。
という理解でいいでしょうか。
上記の状況だとするなら、
「file_nameフィールドに格納されている文字列に、txtの文字列は含まれているか?」
という調べ方をしたいのではないかと思いますので、
「WHERE」句以降で指定する条件文は、resultとtxtではなく、
file_nameとtxtを比較することになるのではないでしょうか。
ということで、
"SELECT file_name FROM PDF WHERE file_name LIKE " & txt &""
となるのではないかなあと。
で、txtが文字列なのであれば、SQL文の中では「’」でくくる必要がありますので、
"SELECT file_name FROM PDF WHERE file_name LIKE ’" & txt &"’"
という感じでしょうか。
# この掲示板ってシングルクォート落とすんでしたっけ?
# 念のために上記SQL文では全角「’」で書いてみました。
# もちろんほんとは半角「'」です。
PictureBoxへのPDF表示は無理です。
通ってみたさんの言われるような代案が必要になります。
が、一度にいくつもの質問をされてしまうと、
質問する方も答える方もこんがらかってしまいやすいです。
まずはSQL文の解決に絞り、それがOKになった時点で次の質問に進むように
したほうが、お互い発言しやすくなると思いますよ。
ツイート | ![]() |