|
現在Excel VBAでータ登録・更新・参照を行うフォームを作っています。
データはDBは使わず、Excel内の1シートに記載されています。
フォームから登録する際には、"Microsoft.Jet.OLEDB.4.0"を使用してSQL文を実行しています。
[DBオープン関数]
Public Sub OpenDB()
Dim DBName As String
DBName = ThisWorkbook.name
' Connection生成
Set dbCon = New ADODB.Connection
With dbCon
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Properties(cnsExtProp) = "Excel 8.0"
.Open ThisWorkbook.Path & "\" & DBName
End With
End Sub
[SQL実行関数]
Public Sub ExecuteSQL(ByVal sql As String)
dbCon.Execute (sql)
End Sub
◎質問事項
上記関数を使って1件Insert文でレコードを追加した際、データ最終行+1ではなく、かなり下のほうにレコードが追加される場合があります。
現在は、追加後にソートをして事なきを得ていますが、なぜこのようなことが起きるのでしょうか?
ご存知の方がいれば教えてください。
#可能であればソートはしたくないので。
|
|