tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル数値型
記事No14188
投稿日: 2009/10/20(Tue) 16:12
投稿者たく
vb6.0です。OSはXP professional version2002 servicepack3。vb初心者です。
アクセスのあるテーブル年度別係数のフィールド卸売物価(データ型数値型)、フィールド年(データ型数値型)とします。
で、CreateField("年",dbInteger)であるデータベースにフィールドをつくり、それをもとにdaorec3という、DAO.Recordsetをつくります。
そして、
SELECT 卸売物価 FROM 年度別係数 WHERE 年 = 'daorec3!年'
のようにすると、データ型が異なるとのエラーがでます。
CreateFieldのところで、データ型をdbLongとか、dbDoubleにしても同じです。
仕方なく、年度別係数の年のデータ型をテキスト型にし、CreateFieldのところでもdbTextにするとうまくいきます。
うまく、数値型のままでSQLを成功させる方法はないでしょうか?
よろしくお願いいたします。

[ツリー表示へ]
タイトルRe: 数値型
記事No14189
投稿日: 2009/10/20(Tue) 16:59
投稿者GOD
> SELECT 卸売物価 FROM 年度別係数 WHERE 年 = 'daorec3!年'
> のようにすると、データ型が異なるとのエラーがでます。
> CreateFieldのところで、データ型をdbLongとか、dbDoubleにしても同じです。
>
年は 文字列('daorec3!年') と比較されているからね。

dim strSQL as string
strSQL = "SELECT 卸売物価 FROM 年度別係数 WHERE 年 = '" & daorec3!年 & "'"
set ??? = ???.OpenRecordset(strSQL, ???)
みたいになるのかな。

[ツリー表示へ]
タイトルRe^2: 数値型
記事No14192
投稿日: 2009/10/21(Wed) 09:10
投稿者たく
早速のご返答ありがとうございます。

すみません。簡略化したプログラムで説明が不十分だったのですが、教えていただいた下記のようにはプログラムをくんでいるのです。

> dim strSQL as string
> strSQL = "SELECT 卸売物価 FROM 年度別係数 WHERE 年 = '" & daorec3!年 & "'"
> set ??? = ???.OpenRecordset(strSQL, ???)

それでもデータ型が違うとエラーが出てしまうので、どうしてなのかな?と思っていたのですが…

何か別の原因があるのでしょうか。。ご返答お願いいたします。

[ツリー表示へ]
タイトルRe^3: 数値型
記事No14193
投稿日: 2009/10/21(Wed) 09:23
投稿者るしぇ
SQL文の中でシングルクォーテーションで挟んだら文字列データと
いう意味になります。

[ツリー表示へ]
タイトルRe^4: 数値型
記事No14194
投稿日: 2009/10/21(Wed) 11:02
投稿者たく
ご返答ありがとうございました。

> SQL文の中でシングルクォーテーションで挟んだら文字列データと
> いう意味になります。

なるほど、そういうことだったんですね。
うまくいきました!ありがとうございました!

[ツリー表示へ]