powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Установить ширину столбца в Word
25 сообщений из 41, страница 1 из 2
Установить ширину столбца в Word
    #36710691
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не получается. Пишу так:
Код: 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
Установить ширину столбца в Word
    #36710697
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробую еще так:
Код: plaintext
tblList.Columns( 1 ).Width =  10 
та же ошибка
...
Рейтинг: 0 / 0
Установить ширину столбца в Word
    #36710720
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KatsyЗначение лежит вне допустимого диапазона

Что не так?
мне кажется, значение лежит вне допустимого диапазона
попробуйте 100
...
Рейтинг: 0 / 0
Установить ширину столбца в Word
    #36710783
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Установить ширину столбца в Word
    #36710817
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Установить ширину столбца в Word
    #36710843
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,

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

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

VBA

Shocker.Pro,

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

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

Код: 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
Установить ширину столбца в Word
    #36712337
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katsy,
спаибо за ответ. Можно поинтерисоваться у Вас, в этой части:
Код: plaintext
1.
2.
Set Doc = Nothing
Set Doc = ObjWord.Documents.Add(PathDOT & "\" & "Распоряжение.doc")
В такой последовательности они зачем идут???
Как я понял, это не весь скрипт, как минимум не хватает строки оканчивающей цикл.
Выложите весь отрезок, пожалуйста. Спасибо
...
Рейтинг: 0 / 0
Установить ширину столбца в Word
    #36712501
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,

по совету: 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
Установить ширину столбца в Word
    #36712562
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Установить ширину столбца в Word
    #36712588
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Установить ширину столбца в Word
    #36712758
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05adm,

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

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

Код: 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
Установить ширину столбца в Word
    #36713576
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katsy, как я понял Вам уже подсказали. В то же время на Вашем примере я хотел бы посмотреть, поучиться. То есть Вы могли бы выложить пример, в последней редакции. И такой, чтобы он смог пойти у каждого пользователя. В настоящее время в первой строке кода, в этой: Dim cnn As New ADODB.Connection. Или подскажите, что мне надо сделать. Выделяет данную часть: cnn As New ADODB.Connection.
Буду Вам признателен. Спасибо
...
Рейтинг: 0 / 0
25 сообщений из 41, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Установить ширину столбца в Word
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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