4

私の問題に対する非常に素晴らしく迅速な解決策を受け取ったので、あなたからの助けを得るためにもう一度試みます:

2 つのレコードセットを開きました。

 Set cmd1.ActiveConnection = cn1
 cmd1.CommandText = "SELECT * FROM mov Where [Date] >= #" & DateA & "#;"
 Set RSold = cmd1.Execute

 Set cmd2.ActiveConnection = cn2
 cmd2.CommandText = "SELECT * FROM mov"
 Set RSnew = cmd2.Execute

(ファイルの選択したレコードのみを保存したい。)

レコードごとにコピーする方法は知っていますが、それをより速く行うための「ショートカット」はありますか?

ありがとう

4

4 に答える 4

1

あなたはコードを使うことができます:

RSNew=RSOld.Cloneを設定します

@user1838163 :Saving the second Recordset as a file

Dim RFileNm  As String 
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")

RFileNm  = "c:\temp\" & Trim(RFileNm) & ".adt"
fs.DeleteFile (RFileNm)
RSNew .Save RFileNm, adPersistADTG
RSNew .Close
RSNew .Open RFileNm, , , , adCmdFile
于 2012-11-24T06:15:54.533 に答える
1

これを試して:

Dim i As Long
Do While Not RSold.EOF
    ' You can place if condition here
    RSNew.AddNew
    For i = 0 To RSold.Fields.Count - 1
        RSNew.Fields(RSold.Fields(i).Name) = RSold.Fields(i).Value
    Next i
    RSNew.Update
    RSold.MoveNext
Loop

これにより、レコードが RSold から RSnew レコードセットにコピーされます

于 2012-11-20T15:49:12.217 に答える
0

CLONE があなたのやりたいことをやってくれるとは思いません。既に持っている同じレコードセットの別のビューを提供するだけです。これにより、複数のブックマークなどを使用できますが、レコードセットは元のデータベースと同じデータベースに接続されたままになります。また、レコードセットをコピーして新しいデータベースに新しい形式で保存する方法も必要です。

于 2013-01-04T23:04:21.553 に答える
0

これは、一度にすべてを行うことで、あなたが望むことを行うと思います。

Dim objPB As New PropertyBag

objPB.WriteProperty "rs", RSOld
Set RSNew = objPB.ReadProperty("rs")

Set objPB = Nothing
于 2012-11-20T17:48:00.673 に答える