powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Ошибка при обращении к файлу БД
18 сообщений из 18, страница 1 из 1
Ошибка при обращении к файлу БД
    #37755085
Фотография Галямов Ильдар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые знатоки, прошу подсказать - что я сделал неправильно.
Никогда ранее не работал в VBA с операторами для управления файлом БД. Это мой первый код, скомпилированный на знаниях из этого форума :)
Вот код:
Код: 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.
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.
Private Sub BazaDan()
Dim cn As ADODB.Connection
Dim cmd As ADODB.Command
Dim DBFullName As String


'// блок оптимизация работы excel
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    ActiveSheet.DisplayPageBreaks = False
    Application.DisplayStatusBar = False
    Application.DisplayAlerts = False
'\\


'// открываем книгу, если книга не та, то возобновляется процедура открытия книги
Dim proverka As Boolean
proverka = True
zanovo: 'возвращаемся сюда, если выбрали не тот файл
proverka = True
Dim OpenBook As Workbook

FileToOpen = Application.GetOpenFilename(Title:="Открыть файл", FileFilter:="Excel Files *.xls* (*.xls*),") 'диалог открытия книги
If FileToOpen = False Then
    MsgBox "Файл не выбран", vbExclamation, "Информация"
    Exit Sub
    Else
        Workbooks.Open Filename:=FileToOpen
        Set OpenBook = ActiveWorkbook
        OpenBook.Activate
End If
'\\


'// заносим необходимые данные из открытой книги в массив
Application.DisplayAlerts = False ' отключаем лишние запросы типа сохранить или нет :)
Dim sh As Worksheet
Dim rng As Range
Dim y As Integer
Dim names(1 To 300) As String
Dim stepen(1 To 300) As Integer
Dim material(1 To 300) As Currency
Dim tzr(1 To 300) As Currency
Dim zp(1 To 300) As Currency
Dim dopzp(1 To 300) As Currency
Dim strah(1 To 300) As Currency
Dim ceh(1 To 300) As Currency
Dim ceh_s(1 To 300) As Currency
Dim zavod(1 To 300) As Currency
Dim zavod_s(1 To 300) As Currency
Dim prib(1 To 300) As Currency
Dim itog(1 To 300) As Currency
y = 0
For Each asd In OpenBook.Worksheets 'вводим цикл для каждого листа в открытой книге
    If y = 0 Then GoTo propusk
    Set sh = OpenBook.Worksheets(y + 1)
    names(y) = sh.Range("a2")
    stepen(y) = CInt(Val(Right((sh.Range("c3")), 1)))
    material(y) = sh.Range("f5")
    tzr(y) = sh.Range("f6")
    zp(y) = sh.Range("f7")
    dopzp(y) = sh.Range("f8")
    strah(y) = sh.Range("f9")
    ceh(y) = sh.Range("f10")
    ceh_s(y) = sh.Range("f11")
    zavod(y) = sh.Range("f12")
    zavod_s(y) = sh.Range("f13")
    prib(y) = sh.Range("f14")
    itog(y) = sh.Range("f15")
propusk:
    y = y + 1
Next
'\\


'// работа с базой данных
DBFullName = "C:\входящие\управляющие файлы\DOS_PEO.accdb"
Set cn = New ADODB.Connection
cn.ConnectionString = "Provider= Microsoft.Jet.OLEDB.4.0;Data Source=" & DBFullName & ""
cn.Open
Dim x As Integer
For x = 1 To y - 1
    Set cmd = New ADODB.Command
    With cmd
        .ActiveConnection = cn
        .CommandText = "INSERT INTO DATA (names, stepen, material, tzr, zp, dopzp, strah, ceh,ceh_s,zavod,zavod_s,prib,itog) VALUES (" & names(x) & "," & stepen(x) & "," & material(x) & "," & tzr(x) & "," & zp(x) & "," & dopzp(x) & "," & strah(x) & "," & ceh(x) & "," & _
        ceh_s(x) & "," & zavod(x) & "," & zavod_s(x) & "," & prib(x) & "," & itog(x) & ");"
End With
    cmd.Execute
Next x
cn.Close
Set cn = Nothing
'\\ окончание работы с базой данных


End Sub



И вот такая ошибка вылетает на строке cn.open:
...
Рейтинг: 0 / 0
Ошибка при обращении к файлу БД
    #37755106
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скорее всего из-за пробелов в пути
возьмите путь в кавычки или измените путь
...
Рейтинг: 0 / 0
Ошибка при обращении к файлу БД
    #37755116
Фотография Галямов Ильдар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKot, по вашему совету все сделал, нет - не из-за пробелов в пути (
...
Рейтинг: 0 / 0
Ошибка при обращении к файлу БД
    #37755117
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Галямов Ильдар,

вполне возможно что DOS_PEO.accdb --это аксесс 2010
а вы работаете в а2007 или а2003
...
Рейтинг: 0 / 0
Ошибка при обращении к файлу БД
    #37755118
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Ошибка при обращении к файлу БД
    #37755147
Фотография Галямов Ильдар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, понял )) сделал. Спасибо! Теперь на cmd.execute ошибка выскакивает (( Где бы прочитать про стандартные операции из VBA Excel в БД access 2010: запись, чтение, изменение, удаление?
...
Рейтинг: 0 / 0
Ошибка при обращении к файлу БД
    #37755150
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В любой книжке по основам SQL
...
Рейтинг: 0 / 0
Ошибка при обращении к файлу БД
    #37755151
ElenHim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ильдар, а вам точно аксес нужен?
Специально уточняю, т.к. вы вроде только начинаете. Лучше бы сразу SQL SERVER.
...
Рейтинг: 0 / 0
Ошибка при обращении к файлу БД
    #37755155
Фотография Галямов Ильдар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenHim, если честно, я бы и просто в Excel записал, мне 1 млн строк за глаза на десятилетия ))) Думал, что с базой данных СУБД Access будет проще, так как в в ней популярно можно самому создать таблицы и формы, да и интуитивнее более понятно как представлены данные в access
...
Рейтинг: 0 / 0
Ошибка при обращении к файлу БД
    #37755186
ElenHim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Формы можно в том же Excel сделать. А таблицы в SQL Server создавать не сложнее чем в Access (реляционная БД она и в африке реляционная БД)
Ну и нескромный вопрос, у вас аксес - лицензия?
...
Рейтинг: 0 / 0
Ошибка при обращении к файлу БД
    #37755194
Фотография Галямов Ильдар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenHim, а в природе в принципе существуют базы данных на базе excel?
...
Рейтинг: 0 / 0
Ошибка при обращении к файлу БД
    #37755209
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Галямов Ильдар,

Следует различать "Базу данных" - то есть хранилище как таковое, и "Клиента БД" - программа, которая предоставляет интерфейс пользователя к этой БД.

В принципе, на экселе можно делать и то и другое, но зачем? Через год будешь иметь дикий гемор все равно, чтобы перейти на специально предназначенные для этого средства - потеряешь в итоге больше времени.
...
Рейтинг: 0 / 0
Ошибка при обращении к файлу БД
    #37755217
Фотография Галямов Ильдар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, походу надо иметь хотя средне-спец.образование программиста, чтобы что-то реальное усовершенствовать (кроме небольших автоматизаций ежедневной рутины). Для себя в настоящее время считаю неподъемным изучение SQL баз данных. Три ребенка младше 5 лет и молодая жена не оставляют времени на самостоятельное изучение ))) Придется дальше делать свою работу экономиста. Хотя те маленькие программульки на VBA под EXCEL уйму времени мне сэкономили
...
Рейтинг: 0 / 0
Ошибка при обращении к файлу БД
    #37755218
ElenHim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, за всю природу не скажу, но вот что следует усвоить: Excel - это табличный процессор. Он хорош для всего, кроме одного - хранения данных. Хранить данные следует в БД, и Access - не лучший выбор.
...
Рейтинг: 0 / 0
Ошибка при обращении к файлу БД
    #37755224
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenHimХранить данные следует в БД, и Access - не лучший выбор.Ну не знаю, по-моему в Access данные хранить очень удобно. Лично я так и делаю, а в Excel извлекаю их сводными таблицами.
А маленькие БД можно хранить и в самом Excel
...
Рейтинг: 0 / 0
Ошибка при обращении к файлу БД
    #37755231
ElenHim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Образование тут ни при чём.Вот время да, придётся выкроить.
Для начала почитайте книжицу

Конрад Карлберг Управление данными с помощью Microsoft Excel

Когда-то я сам с неё начинал.
Главное - понять общую концепцию. SQL сам по себе не сложнее VBA(имхо), но когда используется совместно - это как закись азота))
...
Рейтинг: 0 / 0
Ошибка при обращении к файлу БД
    #37755258
Фотография Галямов Ильдар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenHim,

у меня есть идея воплотить соц.проект, суть его такая: 1) открываю школу для инвалидов-колясочников, 2) в эту школу приглашаю всех лиц заинтересованных в программировании, 3) поиск волонтеров, согласных приехать с большого города и почитать лекции и семинары по программированию из разных тематик, 4) организовать поиск заказов для выполнения этой группой обученных программистов (создание сайтов, макросы, небольшие программки, удаленная настройка и сопровождение 1С). Вот тут и я обучусь-таки работе ))). Ну это так пока мысли, которые уже на бумаге. Спасибо за советы Вам
...
Рейтинг: 0 / 0
Ошибка при обращении к файлу БД
    #37755293
ElenHim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge 007,

Access не потому не лучший выбор, что в нём что-то удобно/неудобно.
Я приведу только пару аргументов:
- Цена. SQL Server Express доступен бесплатно
А вот Access - поставляется в про редакции офиса. Это - 2400(для дома и учёбы) VS 15000 (эт 2010, не встречал чтоб отдельно, но если есть, то тож за$)
- Даже с учётом всех ограничений, SQL Server Express наголову (а то и на две) превзойдёт Access.

И да, ничто не мешает извлекать данные из SQL Server(и других БД тоже) теми же сводными таблицами(сам я правда от этого в последнее время ухожу, предпочитаю ADO, ADO.NET, xml)

Галямов Ильдар,

касательно соцпроекта - похвально
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Ошибка при обращении к файлу БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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