投稿日 | : 2006/06/27(Tue) 01:28 |
投稿者 | : ちゃんこ |
Eメール | : |
URL | : |
タイトル | : Re: Accessレコードの抽出処理 |
はじめまして。
お役にたてるかどうかわかりませんが
一つの方法を提案します。
一度、SQLの結果を構造体にセットし
印刷処理の所は構造体をループで回し
if文で条件を入れる方法はどうでしょう?
if Right(文字列,2)<>"○○" then
等で簡単に回避出きると思います。
処理時間が気になる場合はお勧めできませんが・・・
> 初投稿失礼いたします。
> プログラマ暦半年のヒヨッコです。
> 私の全力をかけて改善方法を模索してみましたが
> 一向に解決方法が見つからないので、どうかご教授願います。
>
> 環境
> ・OS WindowsXP
> ・VB6.0
> ・Access2003
>
> Access2003の"REC001"という名簿の中から条件に一致した
> フィールドを取り出し印刷をしたいのですが、うまく抽出できません。
> 以下のようなコードになります。
>
>
> Private Sub Form_Load()
> Dim Conn As New ADODB.Connection
> Dim RS As New ADODB.Recordset
>
> Conn.ConnectionString = "Provider=Microsoft.jet.oledb.4.0;DATA source=D:\abc.md
b"
> Conn.Open
>
> sql = "SELECT * FROM REC001 ORDER BY KA01, KA02, KA03"
> RS.CursorLocation = adUseClient
> RS.Open sql, Conn, adOpenDynamic, adLockPessimistic
>
> RS.Filter = " KA01 Not Like '○○*' " '@
> RS.Filter = " KA01 Like '*○○' " 'A
> Debug.Print RS.RecordCount
> ' 〜〜〜印刷処理〜〜〜
> RS.Close
> Conn.Close
> End Sub
>
>
> @の所でエラー
> 「実行時エラー'3001':
> 引数が間違った型、許容範囲外、または競合しています」
> がでてしまいます。
> 先頭が「○○」以外のデータを抽出したいのですがなんともうまくいかない状況です。
> 実際のコードでは@の上にも処理が入るのでOpen時のSQLとは別で抽出したいと思っております。
>
> また、Aでは最後が「○○」で終わるデータを抽出したいのですが
> これも上記エラーメッセージが発生し抽出できません。
> MSDNではFilterプロパティのワイルドカードは
> 「○○*」もしくは「*○○*」という使い方しかできない。
> と表記されていますが、他にいい抽出の仕方はないでしょうか?
>
> 稚拙な文章で大変読みにくいとは思いますが、どうか救いの手を差し伸べてください。。