#excel #vb6 #ado
#excel #vb6 #ado
Вопрос:
Я пытаюсь запросить большой именованный диапазон в Excel
Следующее соединение работает хорошо, но очень медленно, когда диапазон содержит тысячи строк. Более того, кажется, что существует ограничение на количество записей.
strCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;" amp; _
"Data Source=" amp; strFile amp; ";" amp; _
"Extended Properties=""Excel 8.0;"""
Я пытаюсь использовать другое соединение, но затем происходит сбой VB6!
myRangeName = "namedRangeWorksheet"
xlapp.Names.Add Name:=myRangeName, RefersTo:=TrueUsedRange
'**********************************
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
strFile = oWB.FullName
Set strCon = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
strCon.Open "Provider = Microsoft.ACE.OLEDB.12.0;" amp; _
"Data Source = " amp; strFile amp; ";" amp; _
"Extended Properties = ""Excel 12.0 Xml;HDR=YES;IMEX=1"";"
strSQL = "SELECT * from namedRangeWorksheet" ''Named range
rs.Open strSQL, strCon, adOpenKeyset, adLockOptimistic
Microsoft.ACE.OLEDB.12.0 хорошо работает на моем компьютере при применении к базе данных Access
Комментарии:
1. С «сбоями» вы имеете в виду, что Excel умирает или просто показывает ошибку?
2. Сбой VB6 (не Excel)!
3. Все еще в замешательстве: Вы говорите о VB6 или VBA? И что вы имеете в виду под «сбоями»? Получаете ли вы какое-либо значимое сообщение об ошибке? Что именно происходит?
4. VB6! Он выходит из строя и закрывается без какого-либо сообщения!
5. Я удалил тег VBA, если вместо этого вы используете VB6. Теги используются для предупреждения людей, которые в них заинтересованы; использование неправильных бесполезно.