|
Dim cnn As Object, cnnstr As String, mypath As String, sql As String
newr = worksheets("批量新增").Range("a" & .Cells.Rows.Count).End(xlUp).Row + 1 '最后一行
Set cnn = CreateObject("adodb.connection")
cnnstr = "Provider=Microsoft.Ace.OLEDB.12.0;Extended properties='Excel 12.0;Hdr=yes;IMEX=1';data source=" & ThisWorkbook.FullName
sql = "select 料号 ,'无类别' from [批量新增$a2:j" & newr & "] where 类别 not in ( select 类别 from [产品类别$a1:a10000] )"
With Worksheets("错误提示ʾ")
cnn.Open cnnstr
.Unprotect pin
.Cells.Clear
.Range("a2").CopyFromRecordset cnn.Execute(sql)
If .UsedRange.Rows.Count >= 1 Then
.Visible = xlSheetVisible
cnn.Close
Set cnn = Nothing
end if
end with
程序可以运行,第一次可以得出正确结果,
当工作表“批量新增”新增记录时 ,调试也可以得到最新的newr值,
但是,问题来了:
执行当重新执行SQL时,数据记录还是原来旧的,工作表“批量新增”增加的记录,无法通过sql得到,只有保存退出EXCEL后,再次运行才可以得到正确结果,求助解决:当“批量新增”有新数据时,点再次运行,sql执行出最新结果,因为在公司,数据都被加密,暂时无附件。
|
|