VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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プロパティのワイルドカードは
> 「○○*」もしくは「*○○*」という使い方しかできない。
> と表記されていますが、他にいい抽出の仕方はないでしょうか?
>
> 稚拙な文章で大変読みにくいとは思いますが、どうか救いの手を差し伸べてください。。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -