Страница: 1 |
Страница: 1 |
Вопрос: Импорт из BDF в Access
Добавлено: 13.07.07 12:54
Автор вопроса: fuzytsfcrew | Web-сайт:
Никак не получается сделать импорт из BDF.
Подключаюсь к БД Access:
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\NormForm\Data\norm.mdb;Persist Security Info=False"
Adodc1.RecordSource = "Select * from baza"
Adodc1.Refresh
открываю нужные мне записи в BDF:
Data1.RecordSource = "SELECT NAME_CH, NAIM_CH, OP, CEH1, R, TSHT1 FROM baz_ip ORDER BY NAME_CH"
Data1.Refresh
и пытаюсь добавить их в БД Access:
With Data1.Recordset
Do Until .EOF
If Not IsNull(!NAME_CH) Then
ListBox1.AddItem !NAME_CH
Adodc1.Recordset.AddNew
End If
.MoveNext
Loop
End With
а он пишет, что я пытаюсь вставить пустое значение..
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #1
Добавлено: 13.07.07 15:32
АдоОдин.Записи.ДобавитьНовую
И где она, эта новая запись?
Уж не это ли - !NAME_CH?
Что же ты его в листбокс суешь?
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("???".Value = Data1.Recordset.Fields("NAME_CH".Value
Номер ответа: 2
Автор ответа:
fuzytsfcrew
ICQ: 314339
Вопросов: 30
Ответов: 102
Web-сайт:
Профиль | | #2
Добавлено: 13.07.07 15:44
чего-то не совсем понял...
как мне все поля Data1.Recordset записать в Adodc1.Recordset?
Номер ответа: 3
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #3
Добавлено: 13.07.07 15:53
Пока далеко не ушел,остановись на чем нибудь, ADODC или Data, то бишь использовать две модели - перебор (ИМХО), либо Два adodc, либо два Data.
Номер ответа: 4
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #4
Добавлено: 13.07.07 15:55
Пока далеко не ушел,остановись на чем нибудь, ADODC или Data, то бишь использовать две модели - перебор (ИМХО), либо Два adodc, либо два Data.
И вообще то, зачем тебе визуальные компоненты, если просто перегоняешь таблицы эз формата в формат. И потом все это можно сделать просто прямо в акцессе.
Номер ответа: 5
Автор ответа:
fuzytsfcrew
ICQ: 314339
Вопросов: 30
Ответов: 102
Web-сайт:
Профиль | | #5
Добавлено: 13.07.07 15:58
Все получилось. Записи добавляются.
Но почемуто выкидывает ошибку:
Run-time error '-2147217887 (80040e21)':
Произошли ошибки во время выполнения пошаговой операции. Проверьте значения всех состояний.
В чем может быть глюк?
Вот код:
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0ata Source=c:\NormForm\Data\norm.mdb;Persist Security Info=False"
Adodc1.RecordSource = "Select * from baza"
Adodc1.Refresh
Data1.RecordSource = "SELECT NAME_CH, NAIM_CH, OP, CEH1, R, TSHT1 FROM baz_ip ORDER BY NAME_CH"
Data1.Refresh
With Data1.Recordset
Do Until .EOF
If Not IsNull(!NAME_CH) Then
ListBox1.AddItem !NAME_CH & " - " & !NAIM_CH & " - " & !OP
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("number".Value = .Fields("NAME_CH".Value
Adodc1.Recordset.Fields("name".Value = .Fields("NAIM_CH".Value
Adodc1.Recordset.Fields("profession".Value = .Fields("OP".Value
Adodc1.Recordset.Fields("ceh".Value = .Fields("CEH1".Value
Adodc1.Recordset.Fields("rozryad".Value = .Fields("R".Value
Adodc1.Recordset.Fields("trudoemkost".Value = .Fields("TSHT1".Value
End If
.MoveNext
Loop
End With
Номер ответа: 6
Автор ответа:
fuzytsfcrew
ICQ: 314339
Вопросов: 30
Ответов: 102
Web-сайт:
Профиль | | #6
Добавлено: 13.07.07 15:59
Все получилось. Записи добавляются.
Но почемуто выкидывает ошибку:
Run-time error '-2147217887 (80040e21)':
Произошли ошибки во время выполнения пошаговой операции. Проверьте значения всех состояний.
В чем может быть глюк?
Вот код:
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0ata Source=c:\NormForm\Data\norm.mdb;Persist Security Info=False"
Adodc1.RecordSource = "Select * from baza"
Adodc1.Refresh
Data1.RecordSource = "SELECT NAME_CH, NAIM_CH, OP, CEH1, R, TSHT1 FROM baz_ip ORDER BY NAME_CH"
Data1.Refresh
With Data1.Recordset
Do Until .EOF
If Not IsNull(!NAME_CH) Then
ListBox1.AddItem !NAME_CH & " - " & !NAIM_CH & " - " & !OP
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("number".Value = .Fields("NAME_CH".Value
Adodc1.Recordset.Fields("name".Value = .Fields("NAIM_CH".Value
Adodc1.Recordset.Fields("profession".Value = .Fields("OP".Value
Adodc1.Recordset.Fields("ceh".Value = .Fields("CEH1".Value
Adodc1.Recordset.Fields("rozryad".Value = .Fields("R".Value
Adodc1.Recordset.Fields("trudoemkost".Value = .Fields("TSHT1".Value
End If
.MoveNext
Loop
End With
Номер ответа: 7
Автор ответа:
fuzytsfcrew
ICQ: 314339
Вопросов: 30
Ответов: 102
Web-сайт:
Профиль | | #7
Добавлено: 13.07.07 17:00
Получилось... В одном из полей новой таблици не хватало места для данных...
А как отчистиь (удалить) все записи таблици из кода???
Номер ответа: 8
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #8
Добавлено: 13.07.07 17:35
Если AddNew - это добавить, то Delete соответственно ...
Совет AndreyMp мудрый, послушайся.
Номер ответа: 9
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #9
Добавлено: 13.07.07 18:30
Ну открываеш рекордсет и вперед..
While Not rs.EOF
rs.Delete
rs.MoveNext
Wend
Номер ответа: 10
Автор ответа:
fuzytsfcrew
ICQ: 314339
Вопросов: 30
Ответов: 102
Web-сайт:
Профиль | | #10
Добавлено: 16.07.07 12:03
Тю.. Пытаюсь удалить строки с БД по записи,
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0ata Source=c:\NormForm\Data\norm.mdb;Persist Security Info=False"
Adodc1.RecordSource = "SELECT * from baza"
Adodc1.Refresh
While Not Adodc1.Recordset.EOF
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
Wend
а он ошибку выдает, что неполные сведения о ключ. поле.
Обновление влияет на слишком большое число строк.
Пробовал по другому:
Adodc1.RecordSource = "ELETE * from baza"
Если есть Adodc1.Refresh, тогда удаляет и пишет ошибку на него ... - операция не допускается, если объект закрыт.
а если его нет (Adodc1.Refresh), то не удаляет.
Чего делать?