Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2010, 06:45   #1
dyakon88
Пользователь
 
Регистрация: 09.11.2010
Сообщений: 22
Вопрос Тип массива

Подскажите какой тип массива s надо? для многострочных (строк где то тысяча, но один столбец)
Цитата:

Sub Макрос5()
Dim i As Long, Lr As Long, s As String

Dim a()
'
' Макрос5 Макрос
'


With Windows("пример.xls").Activate
Lr = Windows("пример.xls").SheetViews.It em(2).Sheet.Cells(Rows.Count, 1).End(xlUp).Row
a = Windows("пример.xls").SheetViews.It em(2).Sheet.Range("a1:b" & Lr).Value
End With

For i = 1 To UBound(a)
If i > 1 Then s = s & ", " & Chr(13)
'If i > 1 Then s = s & " OR "
's = s & "(`Лист1$`.`лиц_счет`= " & a(i, 1) & ")" & Chr(13)
s = s & a(i, 1)
Next i
Windows("Книга1.xls").Activate
'
ActiveWorkbook.Worksheets.Add
With ActiveSheet.ListObjects.Add(SourceT ype:=0, Source:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=C:\Documents and Settings\Юзер\Рабочий стол\ексель\excel\пример.xls;Defaul tDir=C:\Documents and Settings\Юз" _
), Array( _
"ер\Рабочий стол\ексель\excel;DriverId=1046;Max BufferSize=2048;PageTimeout=5;") _
), Destination:=Range("$A$1")).QueryTa ble
.CommandText = Array("SELECT `Лист1$`.`лиц_счет`, `Лист1$`.фамилия" & Chr(13) & "" & Chr(10) & "FROM `Лист1$` `Лист1$`" & Chr(13) & "" & Chr(10) & "WHERE `Лист1$`.`лиц_счет` in (" & s & ")")
'.CommandText = Array("SELECT `Лист1$`.`лиц_счет`, `Лист1$`.фамилия" & Chr(13) & "" & Chr(10) & "FROM `Лист1$` `Лист1$`" & Chr(13) & "" & Chr(10) & "WHERE " & s)
'.CommandText = Array("SELECT `Лист1$`.`лиц_счет`, `Лист1$`.фамилия" & Chr(13) & "" & Chr(10) & "FROM `Лист1$` `Лист1$`" & Chr(13) & "" & Chr(10) & "WHERE (`Лист1$`.`лиц_счет`=1) OR (`Лист1$`.`лиц_счет`=6) OR (`Лист1$`.`лиц_счет`=4)")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
'.ListObject.DisplayName = "Таблица_Запрос_из_Excel_Files6 1"
.Refresh BackgroundQuery:=False
End With
End Sub
dyakon88 вне форума Ответить с цитированием
Старый 13.11.2010, 08:20   #2
dyakon88
Пользователь
 
Регистрация: 09.11.2010
Сообщений: 22
По умолчанию

при 20 строк нормально работает код, а при 100 уже не работает код, в чем проблема?
ошибка выдается на строку
Цитата:
.CommandText = Array("SELECT `Лист1$`.лиц_счет, `Лист1$`.фамилия" & Chr(13) & "" & Chr(10) & "FROM `Лист1$` `Лист1$`" & Chr(13) & "" & Chr(10) & "WHERE `Лист1$`.`лиц_счет` in (" & s & ")")
dyakon88 вне форума Ответить с цитированием
Старый 13.11.2010, 09:29   #3
dyakon88
Пользователь
 
Регистрация: 09.11.2010
Сообщений: 22
По умолчанию

проблема решена!
dyakon88 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
какой тип должен быть у массива? ВикторияЯ Паскаль, Turbo Pascal, PascalABC.NET 8 21.05.2010 10:21
Первести тип real в тип strings sokla Помощь студентам 5 07.01.2010 18:04
Проверка многомерного массива на тип сортировки его строк. FatCat Помощь студентам 4 20.12.2008 21:21
Перевести тип String в тип PChar (Delphi 7) ScorpioN_T Помощь студентам 2 28.10.2008 22:13