powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Через OraOLEDB выдает - Метод доступа не является параметрическим
15 сообщений из 15, страница 1 из 1
Через OraOLEDB выдает - Метод доступа не является параметрическим
    #38958709
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток !

Делаю выгрузку данных из базы Oracle.
Код такой:
Код: vbnet
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.
Sub ExportData()
    Dim CN As ADODB.Connection
    Dim rst As New ADODB.Recordset
    
    Set CN = CreateObject("ADODB.Connection")
    Application.StatusBar = "Подключение к БД..."
    

OraConnect:
        UName = "User1"
        PWord = "pass1"
        SDbName = "DbName"
        
        s_str = "Provider=OraOLEDB.Oracle;Data Source=" & SDbName & ";User ID=" & UName & ";Password=" & PWord & ";PLSQLRSet=1;"
        CN.ConnectionString = s_str
        CN.Open
    
    s_str = "select * from my_table"
    Application.StatusBar = "Выборка ..."
    
    rst.Open s_str, CN
    
    Set NewB = Workbooks.Add()
    Set NewSh = NewB.Worksheets(1)
    
    ' Выгружаю шапку
    For i = 1 To rst.Fields.Count
        NewSh.Cells(1, i).Value = rst.Fields(i - 1).Name
    Next i
    
    ' Выгружаю данные
    NewSh.Range("A2").CopyFromRecordset rst
    
    rst.Close
    CN.Close
    
    Set CN = Nothing
    Set rst = Nothing
    
    Application.StatusBar = "Завершен"
    MsgBox ("Данные выгружены")

End Sub



Выходит ошибка на этой строке:
Код: vbnet
1.
    NewSh.Range("A2").CopyFromRecordset rst



Текст ошибки - Метод доступа не является параметрическим .
Подскажите как решить проблему.
...
Рейтинг: 0 / 0
Через OraOLEDB выдает - Метод доступа не является параметрическим
    #38958726
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По коду ошибки искали?
...
Рейтинг: 0 / 0
Через OraOLEDB выдает - Метод доступа не является параметрическим
    #38958803
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я понял проблема в данных,
Чтобы выяснить какие данные не нравятся
Эту строку:
Код: vbnet
1.
NewSh.Range("A2").CopyFromRecordset rst



Заменил на такую:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
    Do While Not rst.EOF
        j = j + 1
        Application.StatusBar = Trim(j)
        For i = 1 To rst.Fields.Count
            NewSh.Cells(j, i).Value = rst.Fields(i - 1).Value
        Next i
        rst.MoveNext
    Loop



И ошибка возникла где дата равна - 20.09.0204 0:00:00.
Данные исправлять нельзя, как сделать чтобы он игнорировал низкие даты ?
...
Рейтинг: 0 / 0
Через OraOLEDB выдает - Метод доступа не является параметрическим
    #38958811
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в where добавить условие по дате
...
Рейтинг: 0 / 0
Через OraOLEDB выдает - Метод доступа не является параметрическим
    #38958842
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эта запись должна быть выгружена.
...
Рейтинг: 0 / 0
Через OraOLEDB выдает - Метод доступа не является параметрическим
    #38958853
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в VBA такие даты не поддерживаются , там только до 01-01-1900
...
Рейтинг: 0 / 0
Через OraOLEDB выдает - Метод доступа не является параметрическим
    #38958858
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно подменять дату в запросе
...
Рейтинг: 0 / 0
Через OraOLEDB выдает - Метод доступа не является параметрическим
    #38958859
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
придётся вам выгружать даты в текстовом формате, а потом писать функцию преобразования

вот почитайте про проблему: http://exceluser.com/formulas/earlydates.htm
...
Рейтинг: 0 / 0
Через OraOLEDB выдает - Метод доступа не является параметрическим
    #38959209
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через ODBC прошел, наверное из-за того что он даты выгрузил в числовом формате.
...
Рейтинг: 0 / 0
Через OraOLEDB выдает - Метод доступа не является параметрическим
    #38959212
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Остается тогда только в текстовом формате выгрузить дату этого столбца.
Спасибо Всем !
...
Рейтинг: 0 / 0
Через OraOLEDB выдает - Метод доступа не является параметрическим
    #38968310
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как можно поменять выгрузку даты в числовой формате с OraOLEDB ?
Такой метод использует ODBC.
...
Рейтинг: 0 / 0
Через OraOLEDB выдает - Метод доступа не является параметрическим
    #38969371
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GabitКак можно поменять выгрузку даты в числовой формате с OraOLEDB ?
Такой метод использует ODBC.
не отдавайтесь на милость преобразований какого-либо метода доступа или системы.
Конвертируйте сами в запросе. Будет намного лучше.
...
Рейтинг: 0 / 0
Через OraOLEDB выдает - Метод доступа не является параметрическим
    #38969379
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для этого запрос надо будет переписывать каждый раз.
Обычно всегда идет
select * from table
...
Рейтинг: 0 / 0
Через OraOLEDB выдает - Метод доступа не является параметрическим
    #38969384
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gabitselect * from tableэто плохой подход почти во всех ситуациях...
...
Рейтинг: 0 / 0
Через OraOLEDB выдает - Метод доступа не является параметрическим
    #38970390
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKotне отдавайтесь на милость преобразований какого-либо метода доступа или системы.
Конвертируйте сами в запросе. Будет намного лучше.
Не знаю как это произошло, сейчас уже все даты выгружаются в числовом формате.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Через OraOLEDB выдает - Метод доступа не является параметрическим
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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