powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / помогите с макросом...
25 сообщений из 50, страница 2 из 2
помогите с макросом...
    #36732486
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Promalvasу нас действительно всё работает но с access, но теперь встала задача сделать подобное с SQL Server.
Если не заниматься рефакторингом, то ADO пофиг, работать с аксессом или с SQL-сервером. Меняется только строка подключения.

Парни, спасибо за помощь, но я писал, что в VB Ecxel пока не разбираюсь. На форуме попросил помощи. В ответ получаю критику....

В цикле нужно вывести значение в ячейки, рассчитать, и записать в БД..

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
q =  2 
Do Until rs.EOF
    For i =  0  To rs.Fields.Count -  1 
        Cells(q, i +  1 ) = rs.Fields(i)
        Cells(q,  3 ) = Cells(q,  1 ) + Cells(q,  2 )
    Next i
    q = q +  1 
    rs.MoveNext
Loop

...
Рейтинг: 0 / 0
помогите с макросом...
    #36732502
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stavdiusПарни, спасибо за помощь, но я писал, что в VB Ecxel пока не разбираюсь.
А и писал, что там то же самое, что в аксесс.
Код: plaintext
1.
2.
  rs.Edit
  rs!IntRate = Sh.Cells( 16 ,  7 )
  rs.Update
это ваш же код.
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732514
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stavdiusVB Ecxel пока не разбираюсь.
чтобы было понятнее
Сам VB Excel не отличается от VB Access. Отличаются только объекты.
Но ADO - объект внешний, он тоже одинаков для аксесса и для экселя.

Как работать с ячейками в эксели - вы уже разобрались. Остальное - то же самое.
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732559
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProstavdiusПарни, спасибо за помощь, но я писал, что в VB Ecxel пока не разбираюсь.
А и писал, что там то же самое, что в аксесс.
Код: plaintext
1.
2.
  rs.Edit
  rs!IntRate = Sh.Cells( 16 ,  7 )
  rs.Update
это ваш же код.

Ругается...
q = 2
Do Until rs.EOF
For i = 0 To rs.Fields.Count - 1
Cells(q, i + 1) = rs.Fields(i)
Cells(q, 3) = Cells(q, 1) + Cells(q, 2)
rs.Edit
rs!IntRate = Sh.Cells(q, 3)
rs.Update
Next i
q = q + 1
rs.MoveNext
Loop
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732570
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stavdiusРугается...
Либо определяйте и программируйте SH так же, как делаете в аксессе, либо просто уберите. Ну нельзя же так тупо подходить к вопросу. Включайте мозг, вы ж делали это на предыдущей странице
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732609
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edit у рекордсета ADO отстуствует, его не нужно использовать
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732630
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim rs As ADODB.Recordset

Set rs = New ADODB.Recordset
Set rs.ActiveConnection = cn
rs.CursorLocation = adUseClient
rs.Open SQL, , adOpenKeyset, adLockBatchOptimistic, adCmdText

Do While Not rs.EOF
    'тут считываете
    ...
    'собственно обновление записей в базе
    rs!Field1 = "efgse" 'текст
    rs!Field2 =  12123   'число
    rs.MoveNext 'следующая запись
Loop

rs.UpdateBatch 'обновление всего массива
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732740
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim rs As ADODB.Recordset

Set rs = New ADODB.Recordset
Set rs.ActiveConnection = cn
rs.CursorLocation = adUseClient
rs.Open SQL, , adOpenKeyset, adLockBatchOptimistic, adCmdText

Do While Not rs.EOF
    'тут считываете
    ...
    'собственно обновление записей в базе
    rs!Field1 = "efgse" 'текст
    rs!Field2 =  12123   'число
    rs.MoveNext 'следующая запись
Loop

rs.UpdateBatch 'обновление всего массива


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 q =  2 
    Do Until rs.EOF
        For i =  0  To rs.Fields.Count -  1 
           Cells(q, i +  1 ) = rs.Fields(i)
           Cells(q,  3 ) = Cells(q,  1 ) + Cells(q,  2 )
        Next i
            'rs.Fields(i) = Cells(q, 3)
            rs!Fields(i) =  12   'Cells(q, 3)
            q = q +  1 
        rs.MoveNext
    Loop
        rs.UpdateBatch
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732743
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stavdius,

А строку указывать, на которой возникает ошибка, слабо?
А то гадать тяжело...
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732745
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rs!Fields(i) = 12 'Cells(q, 3)


и какое i вы там наблюдаете?
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732748
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Prostavdius,

А строку указывать, на которой возникает ошибка, слабо?
А то гадать тяжело...
А, вот угадал.
Код: plaintext
rs!Fields(i) =  12 
это внутри цикла надо делать, чему у вас в этот момент i равно?
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732752
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oners!Fields(i) = 12 'Cells(q, 3)


и какое i вы там наблюдаете?

в место "Fields(i) " нужно вписывать название столбца и БД ?
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732753
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упс, я только что обнаружил, что мы общаемся не с автором топика....
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732760
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro упс, я только что обнаружил, что мы общаемся не с автором топика....

авторша топика уже давно всё сама сделала, а этот товарищ всё блуждает в 3-х соснах
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732772
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OneShocker.Pro упс, я только что обнаружил, что мы общаемся не с автором топика....

авторша топика уже давно всё сама сделала, а этот товарищ всё блуждает в 3-х соснах

Авторша в отпуск пошла ... =)))))
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732774
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stavdiusKonst_Oners!Fields(i) = 12 'Cells(q, 3)


и какое i вы там наблюдаете?

в место "Fields(i) " нужно вписывать название столбца и БД ?
охохох
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 q =  2 
    Do Until rs.EOF
        For i =  0  To rs.Fields.Count -  1 
           Cells(q, i +  1 ) = rs.Fields(i)
           Cells(q,  3 ) = Cells(q,  1 ) + Cells(q,  2 )
            'rs.Fields(i) = Cells(q, 3)
            rs!Fields(i) =  12   'Cells(q, 3)
        Next i

            q = q +  1 
        rs.MoveNext
    Loop
        rs.UpdateBatch
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732800
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProstavdiusKonst_Oners!Fields(i) = 12 'Cells(q, 3)


и какое i вы там наблюдаете?

в место "Fields(i) " нужно вписывать название столбца и БД ?
охохох
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 q =  2 
    Do Until rs.EOF
        For i =  0  To rs.Fields.Count -  1 
           Cells(q, i +  1 ) = rs.Fields(i)
           Cells(q,  3 ) = Cells(q,  1 ) + Cells(q,  2 )
            'rs.Fields(i) = Cells(q, 3)
            rs!Fields(i) =  12   'Cells(q, 3)
        Next i

            q = q +  1 
        rs.MoveNext
    Loop
        rs.UpdateBatch



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 q =  2 
    Do Until rs.EOF
        For i =  0  To rs.Fields.Count -  1 
           Cells(q, i +  1 ) = rs.Fields(i)
           Cells(q,  3 ) = Cells(q,  1 ) + Cells(q,  2 )
        Next i
            'rs.Fields(i) = Cells(q, 3)
           rs![f] = Cells(q,  3 )
           rs.UpdateBatch
            q = q +  1 
        rs.MoveNext
    Loop
        

Все, считать, рассчитать и залить получилось.
Новый вопрос. =)))
Если в столбце уже есть значения, то он ругается. Можно как то перезаписать значения ?
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732803
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stavdius
Если в столбце уже есть значения, то он ругается. Можно как то перезаписать значения ?

в каком столбце? кто ругается и как?
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732836
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Onestavdius
Если в столбце уже есть значения, то он ругается. Можно как то перезаписать значения ?

в каком столбце? кто ругается и как?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  Do Until rs.EOF
        For i =  0  To rs.Fields.Count -  1 
           Cells(q, i +  1 ) = rs.Fields(i)
           Cells(q,  3 ) = Cells(q,  1 ) + Cells(q,  2 )
        Next i
           rs![f] = ""
           rs.UpdateBatch
            q = q +  1 
        rs.MoveNext
    Loop

Ругается на строку - rs.UpdateBatch
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732853
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stavdius,

Ключ в таблице определен?
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732864
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полезные советы. Содержимое сообщения об ошибке можно скопировать в буфер через Ctrl+C
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732883
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Prostavdius,

Ключ в таблице определен?

Ключ не определен.
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732888
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stavdiusShocker.Prostavdius,

Ключ в таблице определен?

Ключ не определен.

ну так определите PK в своей таблице и создайте новое поле с identity и сделайте его PK
...
Рейтинг: 0 / 0
помогите с макросом...
    #36732891
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OnestavdiusShocker.Prostavdius,

Ключ в таблице определен?

Ключ не определен.

ну так определите PK в своей таблице или создайте новое поле с identity и сделайте его PK
...
Рейтинг: 0 / 0
помогите с макросом...
    #36733000
stavdius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OnestavdiusShocker.Prostavdius,

Ключ в таблице определен?

Ключ не определен.

ну так определите PK в своей таблице и создайте новое поле с identity и сделайте его PK

Konst_One, спасибо. Добавил Ключ, записи обновляются.
...
Рейтинг: 0 / 0
25 сообщений из 50, страница 2 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / помогите с макросом...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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