下午好,我需要一些帮助。有十几种方法可以解决我要问的问题,但哪种方法最快(我希望忽略一些)
我现在有 2 种方法,既慢又超慢(2 更快)
如果生成的随机数在链接表中不存在,它会创建新记录。
表格越大,代码运行越慢。在不久的将来,可能需要几天时间才能添加一些代码。
添加记录的代码位:
Sub MakenNieuweNummers(AantalNieuweNummers As Long, strProduct As String, strBatch As String)
Dim strCode As String
Dim AantalNummersGemaakt As Long
Dim strSQL As String
'Vul hier het aantal nieuwe gewenste nummers in om de database mee uit te breiden
Do While AantalNummersGemaakt < AantalNieuweNummers
DoEvents
strCode = randomstring(6)
If DCount("code", "tblNummers", "code = '" & strCode & "'") = 0 Then
strSQL = "insert into tblNummers " & _
"(code,actief,printdatum,product,batchnummer) " & _
"VALUES ('" & strCode & "',TRUE,#" & Format(Date, "MM-DD-YYYY") & "#,'" & strProduct & "','" & strBatch & "')"
dbLocal().Execute strSQL
AantalNummersGemaakt = AantalNummersGemaakt + 1
End If
Loop
End Sub
Sub MakenNieuweNummers2(AantalNieuweNummers As Long, strProduct As String, strBatch As String)
Dim strCode As String
Dim AantalNummersGemaakt As Long
Dim strSQL As String
'Vul hier het aantal nieuwe gewenste nummers in om de database mee uit te breiden
Do While AantalNummersGemaakt < AantalNieuweNummers
DoEvents
strCode = randomstring(6)
If dbLocal().OpenRecordset("SELECT Count([ID]) AS [CountALL] FROM tblNummers WHERE code='" & strCode & "';")![CountALL] = 0 Then
strSQL = "insert into tblNummers " & _
"(code,actief,printdatum,product,batchnummer) " & _
"VALUES ('" & strCode & "',TRUE,#" & Format(Date, "MM-DD-YYYY") & "#,'" & strProduct & "','" & strBatch & "')"
dbLocal().Execute strSQL
AantalNummersGemaakt = AantalNummersGemaakt + 1
End If
Loop
End Sub
也是从函数返回的随机字符串的代码位
Function randomstring(Optional iLengte As Integer) As String
If IsMissing(iLengte) Then
iLengte = 6
End If
Randomize
Do While Len(randomstring) < iLengte
randomstring = randomstring & Mid(sReeks, Int((Len(sReeks)) * Rnd) + 1, 1)
Loop
End Function
任何帮助是极大的赞赏。
提前致谢。