|
▼小僧 さん:
頂いたコードを記述してみてみました。
> MyDic.Add "1", rs(0)
> MyDic.Add "2", rs(0).Value
上記の部分で rs(0)とrs(0).value の意味がいまいちわかりませんので教えていただけないでしょうか?
rs(0)のほうはFieldとでてきてて、rs(0).valueはタイプがでてきていたのですが、
Fieldはなにを指してくれているのか?わからない状態です。
タイプのほうは、値が入っていないとNullとなるのですね?
あと、For i をつかって、すべてのフィールドをチェックしてみようとすると、
今まで、Nullやタイプ型など取得してきてくれるのに、全部Emptyとなってしまいます。
Accessで、こういうことをやる場合は、Dictionaryはあまり使わないほうがいいのでしょうか?
すみませんが、初心者のため、つまづきまくってます。
どうか、伝授よろしくお願いします
>▼KANA さん:
>こんにちは。
>
>普段Accessでコードを書いていると陥りがちな
>暗黙の型変換に問題がありそうですね。
>
>下記の様なコードをテストして
>Dictionaryオブジェクトに格納される値を確認されてみて下さい。
>
>
>Sub TypeNameTest()
>Dim rs As ADODB.Recordset
>Dim MyDic As Object
>
> Set MyDic = CreateObject("Scripting.Dictionary")
> Set rs = New ADODB.Recordset
> rs.CursorType = adOpenKeyset
> rs.LockType = adLockReadOnly
>
> rs.Open "新TBL", CurrentProject.Connection, , adCmdTable
>
> If rs.EOF Then
> MsgBox "データ入ってないよ!"
> Exit Sub
> Else
>
> MyDic.Add "1", rs(0)
> MyDic.Add "2", rs(0).Value
>
> Debug.Print TypeName(MyDic("1"))
> Debug.Print TypeName(MyDic("2"))
>
> End If
> rs.Close: Set rs = Nothing
> Set MyDic = Nothing
>
>End Sub
|
|