2011-01-20 10 views
0

こんにちは 私は次のコードを使用しています(一部分を示しています)。 基本的には、クローズドブックを照会し、情報を抽出して現在の開いているシートに置くExcelのSQLクエリを実行します。閉じたワークブックを読み取るときにExcel SQLクエリコードに問題が発生する

問題は、何らかの理由でフィールドの1つ(「To」)が、その列の各セルが実際に情報を持っていても、常に何も返されないため、なぜ取得できないのかわかりません値。 他のすべての列は完全に読み取られます。 とにかく、このタイプのSQLクエリに影響を与えるフォーマットやその他の仕様があるのはなぜですか?エラーはありません...単に値は常に何もありません。列にあるデータのどのような種類の事前

+0

エラー処理がありますか?もしそうなら、実際にToという名前のフィールドがあり、Toの後ろに空白やそれ以外の印刷不可能な文字がないことを確認してください。エラーが発生するはずですが、エラー処理が有効になっている場合は無効になります。 –

+0

名前の代わりにフィールドのインデックスを使用して値にアクセスできますか? –

+0

はい、私は名前の代わりにインデックスを使用しようとしました。同じ問題が... :( – griseldataborda

答えて

0

some code... 
    objRecordset.Open "SELECT * FROM [FILESAVED$] , objConnection, adOpenStatic, adLockOptimistic, adCmdText 
for next_row=1 to objRecordset.count 
      Range("AF" & next_row) = objRecordset.Fields.Item("Validto") 
      Range("AG" & next_row) = objRecordset.Fields.Item("To") 
      Range("AO" & next_row) = objRecordset.Fields.Item("User Name") 
objRecordset.movenext 
next next_row 
    ...more code 

のおかげ? Excelワークブックをデータベーステーブルとして扱う場合、Excelは、大部分のエントリを推測するものと一致させることによって、列の型を推論します。 (したがって、60%が数字のように見え、40%がテキストのように見える場合、それらはすべて数字として扱われます)。これはエラーを引き起こす可能性があります。

+0

「問題の列」の値は主に日付ですが、一部のデータの形式が正しくないため、 これは問題だとは思っていましたが、値が得られていないのは意味がありません....レコード間で型が異なる場合、なぜコードが気にする必要がありますか?それは少なくともshであるべきですああ何か。 – griseldataborda

関連する問題