Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Установить ширину столбца в Word / 25 сообщений из 41, страница 1 из 2
28.06.2010, 09:19
    #36710691
Katsy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Не получается. Пишу так:
Код: plaintext
tblList.Cell( 1 ,  1 ).Column.Width =  10 
и так:
Код: plaintext
tblList.Cell( 1 ,  1 ).Column.Width = "10"
В обоих случаях выдает ошибку:
---------------------------
Microsoft Visual Basic
---------------------------
Run-time error '4608':

Значение лежит вне допустимого диапазона
---------------------------
ОК Справка
---------------------------
Что не так?
...
Рейтинг: 0 / 0
28.06.2010, 09:24
    #36710697
Katsy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Пробую еще так:
Код: plaintext
tblList.Columns( 1 ).Width =  10 
та же ошибка
...
Рейтинг: 0 / 0
28.06.2010, 09:45
    #36710720
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
KatsyЗначение лежит вне допустимого диапазона

Что не так?
мне кажется, значение лежит вне допустимого диапазона
попробуйте 100
...
Рейтинг: 0 / 0
28.06.2010, 10:21
    #36710783
Katsy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Shocker.Pro,

и если 100 та же ошибка. Кажется, я догадываюсь, в чем косяк. У меня таблица создается так:
Код: plaintext
1.
Set tblList = Doc.Tables.Add(Doc.ActiveWindow.Selection.Range, NumRows:=intRowsRst +  2 , NumColumns:= 4 , DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
        wdAutoFitContent)
вот может возникает конфликт между шириной по содержимому и устанавливоемой вручную шириной?
...
Рейтинг: 0 / 0
28.06.2010, 10:34
    #36710817
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Katsy, шикарно, изначально спрашивать: tblList.Cell(1, 1).Column.Width = 10
А затем уже в конце:
Set tblList = Doc.Tables.Add(Doc.ActiveWindow.Selection.Range, NumRows:=intRowsRst + 2, NumColumns:=4, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
wdAutoFitContent)
Это ВБ, ВБА, Ворд?
...
Рейтинг: 0 / 0
28.06.2010, 10:45
    #36710843
Katsy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Ципихович Эндрю,

ну кто ж знал, что они взаимосвязаны...
Это Word
...
Рейтинг: 0 / 0
28.06.2010, 10:51
    #36710856
Katsy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Если
Код: plaintext
Set tblList = Doc.Tables.Add(Doc.ActiveWindow.Selection.Range, NumRows:=intRowsRst +  2 , NumColumns:= 4 )
и ширина хотя бы 20, ошибки не возникает. Если ширина 10, возникает ошибка.
...
Рейтинг: 0 / 0
28.06.2010, 11:12
    #36710897
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Katsy, ВБ или ВБА?, если ВБ я пас!
...
Рейтинг: 0 / 0
28.06.2010, 11:16
    #36710907
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Katsy,

попробуйте SetWidth вместо Width
...
Рейтинг: 0 / 0
28.06.2010, 11:30
    #36710941
Katsy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Ципихович Эндрю,

VBA

Shocker.Pro,

да меня устраивают значения больше 10, спасибо :)
...
Рейтинг: 0 / 0
28.06.2010, 11:38
    #36710970
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Katsyда меня устраивают значения больше 10

Меньше 11 и руками не выставить ))
...
Рейтинг: 0 / 0
28.06.2010, 15:51
    #36711535
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Katsy, я так понимаю, теперь надо спрашивать, чему равно Doc
Выложите весь отрезок, пожалуйста
...
Рейтинг: 0 / 0
28.06.2010, 15:53
    #36711541
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Ципихович ЭндрюKatsy, я так понимаю, теперь надо спрашивать, чему равно Doc
Выложите весь отрезок, пожалуйста http://sql.ru/forum/actualthread.aspx?tid=768491&hl=doc#8971511
...
Рейтинг: 0 / 0
28.06.2010, 16:22
    #36711640
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Katsy, Выложите весь отрезок, пожалуйста
...
Рейтинг: 0 / 0
29.06.2010, 03:25
    #36712269
Katsy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Ципихович Эндрю,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
    Dim ObjWord As Variant
    Dim PathDOT As String
    
    'Создаем объект Word
    Set ObjWord = New Word.Application
    PathDOT = "C:"
    Dim Doc As Document
    For intLoopRow =  0  To intRows -  1 
        'Создаем новый документ на основе шаблона
        Set Doc = Nothing
        Set Doc = ObjWord.Documents.Add(PathDOT & "\" & "Распоряжение.doc")
        ObjWord.Visible = True
        'Переходим в конец документа
        Doc.ActiveWindow.Selection.EndKey Unit:=wdStory
        Doc.ActiveWindow.Selection.InsertBreak Type:=wdPageBreak
        Doc.ActiveWindow.Selection.Font.Size =  12 
        'Создаем пустую таблицу
        Set tblList = Doc.Tables.Add(Doc.ActiveWindow.Selection.Range, NumRows:=intRowsRst +  2 , NumColumns:= 4 )
        With tblList
            If .Style <> "Сетка таблицы" Then
                .Style = "Сетка таблицы"
            End If
            .ApplyStyleHeadingRows = True
            .ApplyStyleLastRow = False
            .ApplyStyleFirstColumn = True
            .ApplyStyleLastColumn = False
            .ApplyStyleRowBands = True
            .ApplyStyleColumnBands = False
        End With
        tblList.Select
        'Заполнение таблицы
        intItog =  0 
        tblList.Columns( 1 ).Width =  45 
        tblList.Columns( 2 ).Width =  250 
        tblList.Columns( 3 ).Width =  110 
        tblList.Columns( 4 ).Width =  65 
        tblList.Cell( 1 ,  1 ).Range.InsertAfter "№ п/п"
        tblList.Cell( 1 ,  2 ).Range.InsertAfter "ФИО"
        tblList.Cell( 1 ,  3 ).Range.InsertAfter "Номер карты"
        tblList.Cell( 1 ,  4 ).Range.InsertAfter "Комиссия"
...
Рейтинг: 0 / 0
29.06.2010, 08:07
    #36712337
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Katsy,
спаибо за ответ. Можно поинтерисоваться у Вас, в этой части:
Код: plaintext
1.
2.
Set Doc = Nothing
Set Doc = ObjWord.Documents.Add(PathDOT & "\" & "Распоряжение.doc")
В такой последовательности они зачем идут???
Как я понял, это не весь скрипт, как минимум не хватает строки оканчивающей цикл.
Выложите весь отрезок, пожалуйста. Спасибо
...
Рейтинг: 0 / 0
29.06.2010, 10:13
    #36712501
Katsy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Ципихович Эндрю,

по совету: Shocker.Pro

могу выложить весь. Только он большой.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
Private Sub btnRasp_Click()
    'Создание подключения к базе
    Dim cnn As New ADODB.Connection
    cnn.ConnectionString = "Provider=MSDASQL.1;" _
    & "Data Source=PROD; User ID=yakunina; Password=soykatsy"
    cnn.CommandTimeout =  0 
    cnn.Open
    'Открываем набор данных
    Dim rs As New ADODB.Recordset
    rs.Open "select ovp.AD_OF_NAME, oo.NAME, oo.BANK_ACC, ovp.FEE_YEAR, oo.RECV_DS, fi.NAME, " _
    & "ovp.ORGNAME , oo.Code, ovp.ORGCODE, oo.AMND_DATE, oo.AMND_STATE, ovp.AMND_STATE " _
    & "from ows.client cl, ows.service s, ows.trans_subtype ts, ows.trans_type tt, ows.acnt_contract acc, " _
    & "ows.contr_status cs, ows.acnt_contract ac, ows.f_i fi, ows.contr_subtype cst, ows.opt_v_product ovp, " _
    & "ows.appl_product ap, ows.serv_pack sp, ows.opt_organisation oo " _
    & "where fi.ID = ap.f_i and fi.amnd_state = 'A' and fi.id = '1' and ap.pcat = 'C' " _
    & "and ap.con_cat = 'C' and ap.amnd_state = 'A' and ac.product = ap.internal_code " _
    & "and ac.amnd_state = 'A' and ac.CON_CAT = 'C' and ac.CCAT ='P' and to_date(ac.card_expire,'YYMM') > sysdate-30 " _
    & "and substr(ac.card_expire,3,2) = to_char(trunc(sysdate-30, 'MM'), 'MM') and cs.id = ac.contr_status " _
    & "and cs.amnd_state = 'A' and cs.external_code not in ('14', 'CB', 'CT', 'CU') and cl.id = ac.client__id " _
    & "and cl.amnd_state = 'A' and ac.CONTR_SUBTYPE__ID = cst.id and cst.AMND_STATE = 'A' " _
    & "and months_between(to_date(ac.card_expire,'YYMM'), trunc(sysdate-30, 'MM'))/12 < cst.EXPIRE_FOR_NEW/12 " _
    & "and months_between(to_date(ac.card_expire,'YYMM'), trunc(sysdate-30, 'MM'))/12 > 0 " _
    & "and acc.id = ac.acnt_contract__oid and acc.amnd_state = 'A' and ap.INTERNAL_CODE = ovp.APPL_PRODUCT " _
    & "and ovp.AMND_STATE = 'A' and sp.id = ap.service_pack and sp.amnd_state = 'A' and sp.name like '%-ZP%' " _
    & "and sp.name not like '%-ZP7%' and s.serv_pack__oid = ap.service_pack and s.amnd_state = 'A' " _
    & "and s.trans_type_t = ts.id and ts.amnd_state = 'A' and ts.trans_type__oid = tt.id and tt.amnd_state = 'A' " _
    & "and tt.name = 'Card Fee Yearly' and s.fee_base < 0.01 and ovp.ORGCODE = oo.code and oo.amnd_state = 'A' " _
    & "group by ovp.AD_OF_NAME, oo.NAME, oo.BANK_ACC, ovp.FEE_YEAR, oo.RECV_DS, fi.NAME, " _
    & "ovp.ORGNAME , oo.Code, ovp.ORGCODE, oo.AMND_DATE, oo.AMND_STATE, ovp.AMND_STATE " _
    & "order by fi.name, ovp.ad_of_name, oo.name", cnn
    
    Dim arrayRows As Variant, arrayRowsRst As Variant
    
    Dim intRow As Integer, intRst As Integer

    Dim intRows As Integer, intRowsRst As Integer, intItog As Integer
    
    Dim strClientName As String, strFileName As String, strFee As String, strItog As String
    
    Dim strFeeType As String, strUserFIO As String
    
    Dim intLoopRow As Integer, intLoopCol As Integer
    Dim lenLastName As Integer
    Dim Month1Day As Date
    
    Dim ObjWord As Variant
    Dim PathDOT As String
    
    'Создаем объект Word
    Set ObjWord = New Word.Application
    PathDOT = "C:"
    Dim Doc As Document
    'Записываем ФИО исполнителя в переменную
    lenLastName = InStr(Application.UserName, " ")
    strUserFIO = Left(Application.UserName, lenLastName) & Application.UserInitials
    'Определяем первый рабочий день месяца
    Month1Day = CDate("01." & Month(Date) & "." & Year(Date))
    If Weekday(Month1Day) =  1  Then
        Month1Day = Month1Day +  1 
    ElseIf Weekday(Month1Day) =  7  Then
        Month1Day = Month1Day +  2 
    End If
    'Находим число записей в наборе
    rs.MoveFirst
    intRows =  0 
    Do While Not rs.EOF
        intRows = intRows +  1 
        rs.MoveNext
    Loop
    rs.MoveFirst
    'Получаем массив записей
    arrayRows = rs.GetRows(intRows)
    'Объявляем набор данных
    Dim rst As New ADODB.Recordset
    'Объявляем таблицу
    Dim tblList As Table
    'Проход по записям массива
    For intLoopRow =  0  To intRows -  1 
        'Создаем новый документ на основе шаблона
        Set Doc = Nothing
        Set Doc = ObjWord.Documents.Add(PathDOT & "\" & "Распоряжение.doc")
        ObjWord.Visible = True
                'Запрашиваем данные из базы
                rst.Open "select cl.last_nam last_name, cl.first_nam first_name, cl.father_s_nam father_s_name, " _
                & "substr(ac.contract_number,1,6) || '******' || substr(ac.contract_number,12,4) contract_number, " _
                & "ovp.fee_year, ovp.curr from ows.client cl, ows.service s, ows.trans_subtype ts, ows.trans_type tt, ows.acnt_contract acc, " _
                & "ows.contr_status cs, ows.acnt_contract ac, ows.f_i fi, ows.contr_subtype cst, ows.opt_v_product ovp, ows.appl_product ap, " _
                & "ows.serv_pack sp, ows.opt_organisation oo where fi.ID = ap.f_i and fi.amnd_state = 'A' and ap.pcat = 'C' " _
                & "and ap.con_cat = 'C' and ap.amnd_state = 'A' and ac.product = ap.internal_code " _
                & "and ac.amnd_state = 'A' and ac.CON_CAT = 'C' and ac.CCAT ='P' and to_date(ac.card_expire,'YYMM') > sysdate-30 " _
                & "and substr(ac.card_expire,3,2) = to_char(trunc(sysdate-30, 'MM'), 'MM') and cs.id = ac.contr_status " _
                & "and cs.amnd_state = 'A' and cs.external_code not in ('14', 'CB', 'CT', 'CU') and cl.id = ac.client__id " _
                & "and cl.amnd_state = 'A' and ac.CONTR_SUBTYPE__ID = cst.id and cst.AMND_STATE = 'A' " _
                & "and months_between(to_date(ac.card_expire,'YYMM'), trunc(sysdate-30, 'MM'))/12 < cst.EXPIRE_FOR_NEW/12 " _
                & "and months_between(to_date(ac.card_expire,'YYMM'), trunc(sysdate-30, 'MM'))/12 > 0 " _
                & "and acc.id = ac.acnt_contract__oid and acc.amnd_state = 'A' and ap.INTERNAL_CODE = ovp.APPL_PRODUCT " _
                & "and ovp.AMND_STATE = 'A' and sp.id = ap.service_pack and sp.amnd_state = 'A' and sp.name like '%-ZP%' " _
                & "and sp.name not like '%-ZP7%' and s.serv_pack__oid = ap.service_pack and s.amnd_state = 'A' " _
                & "and s.trans_type_t = ts.id and ts.amnd_state = 'A' and ts.trans_type__oid = tt.id and tt.amnd_state = 'A' " _
                & "and tt.name = 'Card Fee Yearly' and s.fee_base < 0.01 AND ovp.fee_year = '" + CStr(arrayRows( 3 , intLoopRow)) + "' " _
                & "and ovp.ORGCODE = oo.code and oo.amnd_state = 'A' AND oo.name = '" + CStr(arrayRows( 1 , intLoopRow)) + "' " _
                & "order by last_name, first_name, father_s_name", cnn
        'Находим число записей в наборе
        If Not rst.EOF Then
            rst.MoveFirst
            intRowsRst =  0 
            Do While Not rst.EOF
                intRowsRst = intRowsRst +  1 
                rst.MoveNext
            Loop
            rst.MoveFirst
            arrayRowsRst = rst.GetRows(intRowsRst)
        Else
            intRowsRst =  0 
        End If
        'Вводим данные из массива в шаблон
        With ObjWord.ActiveDocument.Bookmarks
            .Item("OfficeCode").Range.Text = arrayRows( 0 , intLoopRow)
            .Item("CurrDate").Range.Text = Date
            .Item("Name").Range.Text = arrayRows( 1 , intLoopRow)
            
            If arrayRows( 2 , intLoopRow) <> "Null" Then
                .Item("BankAcc").Range.Text = "№ " & arrayRows( 2 , intLoopRow)
            Else
                .Item("BankAcc").Range.Text = ""
            End If
            Select Case arrayRowsRst( 5 ,  0 )
            Case  810 
                strFeeType = "рублей 00 коп."
            Case  840 
                strFeeType = "долларов 00 центов"
            Case  978 
                strFeeType = "евро 00 евроцентов"
            End Select
            .Item("FeeYear").Range.Text = intRowsRst * CInt(arrayRows( 3 , intLoopRow))
            If CInt(arrayRows( 3 , intLoopRow)) =  0  Then
                .Item("FeeYears").Range.Text = "ноль " + strFeeType
            Else
                .Item("FeeYears").Range.Text = TextSum(intRowsRst * CInt(arrayRows( 3 , intLoopRow)), arrayRowsRst( 5 ,  0 ))
            End If
            .Item("CardCount").Range.Text = intRowsRst
            .Item("Month1Day").Range.Text = Month1Day
            If arrayRows( 4 , intLoopRow) <> "Null" Then
                .Item("NoteDoc").Range.Text = arrayRows( 4 , intLoopRow)
            Else
                .Item("NoteDoc").Range.Text = "RDF" '?What needs?
            End If
            .Item("FIO").Range.Text = strUserFIO
        End With
        'Переходим в конец документа
        Doc.ActiveWindow.Selection.EndKey Unit:=wdStory
        Doc.ActiveWindow.Selection.InsertBreak Type:=wdPageBreak
        Doc.ActiveWindow.Selection.Font.Size =  12 
        'Создаем пустую таблицу
        Set tblList = Doc.Tables.Add(Doc.ActiveWindow.Selection.Range, NumRows:=intRowsRst +  2 , NumColumns:= 4 )
        With tblList
            If .Style <> "Сетка таблицы" Then
                .Style = "Сетка таблицы"
            End If
            .ApplyStyleHeadingRows = True
            .ApplyStyleLastRow = False
            .ApplyStyleFirstColumn = True
            .ApplyStyleLastColumn = False
            .ApplyStyleRowBands = True
            .ApplyStyleColumnBands = False
        End With
        tblList.Select
        'Заполнение таблицы
        intItog =  0 
        tblList.Columns( 1 ).Width =  45 
        tblList.Columns( 2 ).Width =  250 
        tblList.Columns( 3 ).Width =  110 
        tblList.Columns( 4 ).Width =  65 
        tblList.Cell( 1 ,  1 ).Range.InsertAfter "№ п/п"
        tblList.Cell( 1 ,  2 ).Range.InsertAfter "ФИО"
        tblList.Cell( 1 ,  3 ).Range.InsertAfter "Номер карты"
        tblList.Cell( 1 ,  4 ).Range.InsertAfter "Комиссия"
        If intRowsRst <>  0  Then
                    For intRst =  0  To intRowsRst -  1 
                        strClientName = CStr(arrayRowsRst( 0 , intRst)) + " " + CStr(arrayRowsRst( 1 , intRst))
                        If arrayRowsRst( 2 , intRst) <> "Null" Then
                            strClientName = strClientName + " " + CStr(arrayRowsRst( 2 , intRst))
                        End If
                        Select Case arrayRowsRst( 5 , intRst)
                        Case  810 
                            strFeeType = "RUR"
                        Case  840 
                            strFeeType = "USD"
                        Case  978 
                            strFeeType = "EUR"
                        End Select
                        strFee = CStr(arrayRowsRst( 4 , intRst)) + " " + strFeeType
                        tblList.Cell(intRst +  2 ,  1 ).Range.InsertAfter intRst +  1 
                        tblList.Cell(intRst +  2 ,  2 ).Range.InsertAfter strClientName
                        tblList.Cell(intRst +  2 ,  3 ).Range.InsertAfter arrayRowsRst( 3 , intRst)
                        tblList.Cell(intRst +  2 ,  4 ).Range.InsertAfter strFee
                        intItog = intItog + CInt(arrayRowsRst( 4 , intRst))
                    Next
                    strItog = CStr(intItog) + " " + strFeeType
                    tblList.Cell(intRst +  2 ,  2 ).Range.InsertAfter "Итого"
                    tblList.Cell(intRst +  2 ,  4 ).Range.InsertAfter strItog
        End If
        'Закрываем набор данных
        rst.Close
        'Переходим в начало документа
        Doc.ActiveWindow.Selection.HomeKey Unit:=wdStory
        'Сохраняем документ
        strFileName = CStr(arrayRows( 6 , intLoopRow)) + " fee " + CStr(arrayRows( 3 , intLoopRow)) + ".doc"
        Doc.SaveAs (strFileName)
    Next
    
    Set ObjWord = Nothing
    'Закрываем набор данных
    rs.Close
    'Закрываем соединения
    cnn.Close
End Sub
...
Рейтинг: 0 / 0
29.06.2010, 10:34
    #36712562
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Katsy,
а почему именно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
If Not rst.EOF Then
            rst.MoveFirst
            intRowsRst =  0 
            Do While Not rst.EOF
                intRowsRst = intRowsRst +  1 
                rst.MoveNext
            Loop
            rst.MoveFirst
            arrayRowsRst = rst.GetRows(intRowsRst)
        Else
            intRowsRst =  0 
        End If
а не так
Код: plaintext
1.
2.
3.
4.
5.
rst.MoveFirst
intRowsRst =  0 
Do While Not rst.EOF
                intRowsRst = intRowsRst +  1 
                rst.MoveNext
Loop
...
Рейтинг: 0 / 0
29.06.2010, 10:43
    #36712588
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Katsy,
хотя чуть раньше используете именно такую конструкцию
Код: plaintext
1.
2.
3.
4.
5.
6.
rs.MoveFirst
    intRows =  0 
    Do While Not rs.EOF
        intRows = intRows +  1 
        rs.MoveNext
    Loop
    rs.MoveFirst
...
Рейтинг: 0 / 0
29.06.2010, 11:49
    #36712758
Katsy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
aduka05adm,

rs заведомо возвращает данные, а rst может оказаться пустым
...
Рейтинг: 0 / 0
29.06.2010, 12:08
    #36712810
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Katsy,
все понял
а если Recordset пустой такой код ошибку не вызывает?
просто не пробовал поэтому спрашиваю
...
Рейтинг: 0 / 0
29.06.2010, 12:44
    #36712941
Katsy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
aduka05adm,

если пустой, то MoveFirst вызовет ошибку сразу
...
Рейтинг: 0 / 0
29.06.2010, 12:56
    #36712997
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Katsy,
Код: plaintext
If Not rst.EOF Then
а этот код?
...
Рейтинг: 0 / 0
29.06.2010, 13:02
    #36713018
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
надо так:

Код: plaintext
1.
2.
3.
4.
If Not rst Is Nothing Then 
   If Not (rst.EOF Or rst.BOF) Then
...
   End If
End if
...
Рейтинг: 0 / 0
29.06.2010, 17:05
    #36713576
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Установить ширину столбца в Word
Katsy, как я понял Вам уже подсказали. В то же время на Вашем примере я хотел бы посмотреть, поучиться. То есть Вы могли бы выложить пример, в последней редакции. И такой, чтобы он смог пойти у каждого пользователя. В настоящее время в первой строке кода, в этой: Dim cnn As New ADODB.Connection. Или подскажите, что мне надо сделать. Выделяет данную часть: cnn As New ADODB.Connection.
Буду Вам признателен. Спасибо
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Установить ширину столбца в Word / 25 сообщений из 41, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]