投稿日 | : 2004/01/20(Tue) 16:55 |
投稿者 | : you |
Eメール | : |
URL | : |
タイトル | : Re^2: DAOで実行時エラー |
> > いくつかのPCで「列の値が不正です」の実行時エラーになってしまいます。
> 問題点を整理して下さい。
> エラーが発生しないPCも有るという事ですが、エラーが発生するPCと発生しない
> PCとの違いは何ですか? OS・データーの違い・その他の環境等。
> ここのサンプルを使ったとの事ですが、どこか変更(改造)されていますか?
> 元々のサンプルを使用しても同じですか?
> 「列の値が不正です」のエラーは、参照している列番号が存在しないモノを指定
> した場合に起きるかと思うのですが、その辺はどうなのですか?
> データを読込む前にその辺を操作していませんか?
> 又、単純なExcelファイルを作成してそれを読込んだ場合どうなりますか?
> (すべてのセルに同じデータを入れた5列5行位のファイル)
>
> 上記の部分について調べて見て下さい。
> コードを変更されたのなら、そのコードも投稿して見て下さい。
ご回答有難うございます。
試してみた環境は
@2000・VBがインストールされている…○
A2000・VBがインストールされていない…○
BNT・VBがインストールされている…○
CNT・VBがインストールされていない…×
の4つです。
データの違いはありません。
@とCのPCのレジストリ「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel」
の内容を比較してみましたが、全く一緒でした。
コードは以下の通りです。
Dim daoDB As DAO.Database
Dim daoRs As DAO.Recordset
Dim strXLSName As String
Dim strSQL As String
Dim i As Long
strXLSName = "C:\マスタ.xls"
Set daoDB = DBEngine.Workspaces(0).OpenDatabase(strXLSName, _
False, False, "EXCEL 8.0; HDR=YES;IMEX=1;")
strSQL = "SELECT a.●名," & _
"a.○1," & _
"b.■," & _
"c.▲区分名称," & _
"d.▼区分名称," & _
"a.4桁●コード," & _
"a.○2," & _
"a.▲区分," & _
"a.▼区分" & _
" FROM ((([●マスタ$] a " & _
" LEFT JOIN [■マスタ$] b on a.4桁●コード = b.4桁●コード) " & _
" LEFT JOIN [▲区分マスタ$] c on a.▲区分 = c.▲区分) " & _
" LEFT JOIN [▼区分マスタ$] d on a.▼区分 = d.▼区分) " & _
" RIGHT JOIN [略語マスタ$] e on a.4桁●コード = e.4桁●コード" & _
" WHERE e.●カナ LIKE '*" & TextKana & "*' "
Set daoRs = daoDB.OpenRecordset(strSQL, dbOpenDynaset)
If daoRs.EOF Then
MsgBox "該当データがありません。"
Else
'MSFlexGridと連結
Set Data1.Recordset = daoRs
MSFlexGrid1.Visible = True
With MSFlexGrid1
For i = 1 To .Rows - 1
.TextMatrix(i, 0) = i
Next i
End With
MSFlexGrid1.ColWidth(0) = 0
MSFlexGrid1.ColWidth(1) = 2400
MSFlexGrid1.ColWidth(2) = 1400
MSFlexGrid1.ColWidth(3) = 1400
MSFlexGrid1.ColWidth(4) = 1000
MSFlexGrid1.ColWidth(5) = 700
MSFlexGrid1.ColWidth(6) = 0
MSFlexGrid1.ColWidth(7) = 0
MSFlexGrid1.ColWidth(8) = 0
MSFlexGrid1.ColWidth(9) = 0
MSFlexGrid1.Visible = True
End If
Data1.Refresh
daoRs.Close
Set daoRs = Nothing
daoDB.Close
Set daoDB = Nothing