Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/120: Рейтинг темы: голосов - 120, средняя оценка - 4.67
512 / 21 / 2
Регистрация: 11.03.2012
Сообщений: 447
1

Код VBA в Access 2010 работает, в Access 2007 выдает ошибку

27.09.2012, 14:27. Просмотров 22292. Ответов 137
Метки нет (Все метки)


Написала код VBA в Access 2010 - работает, в Access-2007 выдает ошибку. В чем причина - подскажите
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2012, 14:27
Ответы с готовыми решениями:

Переписывание файла adp под Access 2007 или Access 2010
Имеется проект, разработанный под Access 2003 и работающий с базой данных SQL Server. При...

Влияет ли удаленное вычисляемое поле в Access 2010 на открытие файла в Access 2007 ?
Создала в своей таблице в Access 2010 вычисляемое поле. Данные для него брались из этой же таблицы...

Access 2007 не открывает базу созданную в Access 2010
Access 2007 не открывает базу созданную в Access 2010. Выдает ошибку "Нераспознаваемый формат...

Конвертировать файлы access 2010 в access 2007
вообщем время сдавать курсачи на заочке. помогал брату, сделал в 2010 офисе, acess. а у них там...

137
512 / 21 / 2
Регистрация: 11.03.2012
Сообщений: 447
27.09.2012, 14:39  [ТС] 2
Вот что получается в итоге
0
Миниатюры
Код VBA в Access 2010 работает, в Access 2007 выдает ошибку  
Эксперт MS Access
26611 / 14310 / 3166
Регистрация: 28.04.2012
Сообщений: 15,691
27.09.2012, 15:05 3
Inessa, в редакторе ВБА зайдите в меню Tools-References. Поищите среди строк с галочками слово MISSING. Эта библиотека помечена как отсутствующая или испорченная. Снимите с нее галку о попробуйте все заново.

Если отключенная биб-ка нужна, то придется искать путь ее внедрения на ПК.
1
512 / 21 / 2
Регистрация: 11.03.2012
Сообщений: 447
27.09.2012, 15:20  [ТС] 4
Сняла флажок и все совсем перестало работать. Еще и база не сжимается - пашет "Неизвестная ошибка ядра базы данных"
0
Эксперт MS Access
26611 / 14310 / 3166
Регистрация: 28.04.2012
Сообщений: 15,691
27.09.2012, 15:32 5
Inessa, похоже, что БД запортилась. Даже если не так, импорт всего-всего в новую чистую БД всегда благотворен. Сделайте его. Может все придет в норму, кроме отключенной библиотеки, конечно. Кстати, а что за библиотека была с миссингом?
1
512 / 21 / 2
Регистрация: 11.03.2012
Сообщений: 447
27.09.2012, 15:50  [ТС] 6
MISSING: Microsoft Word 14.0 Object Library
0
Эксперт MS Access
26611 / 14310 / 3166
Регистрация: 28.04.2012
Сообщений: 15,691
27.09.2012, 16:01 7
Цитата Сообщение от Inessa Посмотреть сообщение
MISSING: Microsoft Word 14.0 Object Library
Я так и думал. Там где офис 2007, версия будет 12.0. Вот чем хорошо позднее связывание - не зависишь от версии программы, всегда будет только доступная на данном ПК.

Отлаживать программу удобно с типизированными объектными переменными. Все свойства видны, все прозрачно. А в эксплуатацию отдавать только с поздним связыванием. Иначе неприятности гарантированы.
1
512 / 21 / 2
Регистрация: 11.03.2012
Сообщений: 447
27.09.2012, 16:14  [ТС] 8
Я попыталась сделать позднее связывание - ничего. Также не работает
0
512 / 21 / 2
Регистрация: 11.03.2012
Сообщений: 447
27.09.2012, 16:19  [ТС] 9
Я выгружу базу - может подскажите, что исправить
0
Вложения
Тип файла: rar Форма14-новая.rar (465.3 Кб, 56 просмотров)
Эксперт MS Access
26611 / 14310 / 3166
Регистрация: 28.04.2012
Сообщений: 15,691
27.09.2012, 16:26 10
Цитата Сообщение от Inessa Посмотреть сообщение
Я выгружу базу - может подскажите, что исправить
Какую форму надо открыть? Какую кнопку нажать? Какие данные и куда забить?
0
512 / 21 / 2
Регистрация: 11.03.2012
Сообщений: 447
27.09.2012, 16:46  [ТС] 11
1. Форма "Запросы" нажать на кнопку "Форма14" (код VBA): здесь выбираешь "Дату начало" и "Дату конец" (обязательно) и другой параметр (не обязательно) выводится отчет "итог14"
2. Отчет "итог14" нажать кнопку "Выгрузка" - эта форма выгружается в шаблон вордовского документа
0
Вложения
Тип файла: rar 14.rar (318.1 Кб, 51 просмотров)
Эксперт MS Access
26611 / 14310 / 3166
Регистрация: 28.04.2012
Сообщений: 15,691
27.09.2012, 17:12 12
Цитата Сообщение от Inessa Посмотреть сообщение
1. Форма "Запросы" нажать на кнопку "Форма14" (код VBA): здесь выбираешь "Дату начало" и "Дату конец" (обязательно) и другой параметр (не обязательно) выводится отчет "итог14"
2. Отчет "итог14" нажать кнопку "Выгрузка" - эта форма выгружается в шаблон вордовского документа
Отчет создался беспроблемно. Дальше множество ошибок. Большинство исправил, но кое-где просто не понимаю смысл написанного. Вот в программе есть множество выражений типа
Visual Basic
1
2
If Form.Controls(z2000_010_04).Value <> "" Then _
    z2000_010_04 = Form.Controls(z2000_010_04).Value
Какая форма (Form.Controls), когда кнопка находится в отчете? Чему равны переменные z2000_010_04 и похожие? А они обязаны быть чему-то равны, ведь от их значения зависит адрес выбираемого контрола.
1
512 / 21 / 2
Регистрация: 11.03.2012
Сообщений: 447
27.09.2012, 17:15  [ТС] 13
Я же говорю "новичек". Все поперепутала. Это я где-то пример заполнения вычитала и попыталась написать "ЭТО"
0
512 / 21 / 2
Регистрация: 11.03.2012
Сообщений: 447
28.09.2012, 03:10  [ТС] 14
Я попыталась переделать код VBA и вот, что получилось:

Visual Basic
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
Private Sub Выгрузка_Click()
On Error GoTo Err_Выгрузка_Click
 
Dim dDate As Date
    Dim z2000_010_04, z2000_010_05, z2000_010_06, z2000_010_07, z2000_010_08, z2000_010_09, z2000_010_10, z2000_010_11, z2000_010_12, z2000_010_13, z2000_010_14, z2000_010_15, z2000_010_16, z2000_010_17, z2000_010_18, z2000_010_19, z2000_010_20, z2000_010_21, z2000_010_22, z2000_010_23, z2000_010_24, z2000_010_25, z2000_010_26 As String
 
  
'Получаем шаблон — теперь из базы данных
 
    Dim oBOF As BoundObjectFrame
    Set oBOF = Otch.Controls("OLEObject1")
    oBOF = DLookup("[Шаблон]", "Шаблон", "[КодШаблон] = 1")
    oBOF.Verb = acOLEVerbOpen
 
     oBOF.Action = acOLEActivate
 
  
'Получаем ссылки на запущенный нами Word и открытый в нем документ
 
    Dim oWord As Object
    Set oWord = CreateObject("Word.Application")
    app.Visible = True
    app.Documents.Add strPathDot
    oWord.Visible = True
    oWord.ActiveWindow.WindowState = wdWindowStateMaximize
    oDoc.Activate
 
  
'Вставляем данные в закладки
    oDoc.Bookmarks.Item("z2000_010_04").Range.Text = Nz(z2000_010_04, "")
    oDoc.Bookmarks.Item("z2000_010_05").Range.Text = Nz(z2000_010_05, "")
    oDoc.Bookmarks.Item("z2000_010_06").Range.Text = Nz(z2000_010_06, "")
    oDoc.Bookmarks.Item("z2000_010_07").Range.Text = Nz(z2000_010_07, "")
    oDoc.Bookmarks.Item("z2000_010_08").Range.Text = Nz(z2000_010_08, "")
    oDoc.Bookmarks.Item("z2000_010_09").Range.Text = Nz(z2000_010_09, "")
    oDoc.Bookmarks.Item("z2000_010_10").Range.Text = Nz(z2000_010_10, "")
    oDoc.Bookmarks.Item("z2000_010_11").Range.Text = Nz(z2000_010_11, "")
    oDoc.Bookmarks.Item("z2000_010_12").Range.Text = Nz(z2000_010_12, "")
    oDoc.Bookmarks.Item("z2000_010_13").Range.Text = Nz(z2000_010_13, "")
    oDoc.Bookmarks.Item("z2000_010_14").Range.Text = Nz(z2000_010_14, "")
    oDoc.Bookmarks.Item("z2000_010_15").Range.Text = Nz(z2000_010_15, "")
    oDoc.Bookmarks.Item("z2000_010_16").Range.Text = Nz(z2000_010_16, "")
    oDoc.Bookmarks.Item("z2000_010_17").Range.Text = Nz(z2000_010_17, "")
    oDoc.Bookmarks.Item("z2000_010_18").Range.Text = Nz(z2000_010_18, "")
    oDoc.Bookmarks.Item("z2000_010_19").Range.Text = Nz(z2000_010_19, "")
    oDoc.Bookmarks.Item("z2000_010_20").Range.Text = Nz(z2000_010_20, "")
    oDoc.Bookmarks.Item("z2000_010_21").Range.Text = Nz(z2000_010_21, "")
    oDoc.Bookmarks.Item("z2000_010_22").Range.Text = Nz(z2000_010_22, "")
    oDoc.Bookmarks.Item("z2000_010_23").Range.Text = Nz(z2000_010_23, "")
    oDoc.Bookmarks.Item("z2000_010_24").Range.Text = Nz(z2000_010_24, "")
    oDoc.Bookmarks.Item("z2000_010_25").Range.Text = Nz(z2000_010_25, "")
    oDoc.Bookmarks.Item("z2000_010_26").Range.Text = Nz(z2000_010_26, "")
 
     DoCmd.OpenReport stoWord, acdDate
 
Exit_Выгрузка_Click:
    Exit Sub
 
Err_Выгрузка_Click:
    MsgBox Err.Description
    Resume Exit_Выгрузка_Click
    
End Sub
И здесь выдает:
0
Миниатюры
Код VBA в Access 2010 работает, в Access 2007 выдает ошибку  
Эксперт MS Access
6641 / 4237 / 263
Регистрация: 12.08.2011
Сообщений: 12,288
28.09.2012, 06:57 15
Цитата Сообщение от mobile Посмотреть сообщение
Чему равны переменные z2000_010_04 и похожие? А они обязаны быть чему-то равны, ведь от их значения зависит адрес выбираемого контрола.
Цитата Сообщение от Inessa Посмотреть сообщение
oDoc.Bookmarks.Item("z2000_010_04").Range.Text = Nz(z2000_010_04, "")
Так всё-таки, что такое z2000_010_04 ???
0
512 / 21 / 2
Регистрация: 11.03.2012
Сообщений: 447
28.09.2012, 07:27  [ТС] 16
Цитата Сообщение от alvk Посмотреть сообщение
z2000_010_04
это одноименное поле в отчете и закладке Word
0
512 / 21 / 2
Регистрация: 11.03.2012
Сообщений: 447
28.09.2012, 07:40  [ТС] 17
Я уже передала и все равно выдает ошибку
Visual Basic
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
Option Compare Database
Option Explicit
 
Function funOutputWord(strPathDot As String, strPathWord As String) As Boolean
On Error GoTo Err_
Dim wda As Word.Application
Set wda = CreateObject("Word.Application")
With wda
 .Visible = True
 .Documents.Open "C:\Doc\Letter.doc"
End With
 'операции над документом wda.Quit Wda.Nothing
End Sub
 
Dim app As Word.Application
Set app = GetObject(, "Word.Application")
Dim DlgUser As Integer
    If Dir(strPathWord) <> "" Then
        DlgUser = MsgBox("Документ с таким именем ранее уже был создан. Заменить его?", vbYesNo, "admin")
        If DlgUser = vbNo Then
            Set app = CreateObject("Word.Application")
            With app
                .Visible = True
                .Documents.Open strPathWord
            End With
            Set app = Nothing
        Else
            GoTo nn
        End If
    Else
nn:
        Set app = New Word.Application
        app.Visible = True
        app.Documents.Add strPathDot
        With app.ActiveDocument
            .Bookmarks.Item("z2000_010_04").Range.Text = Nz(z2000_010_04, "")
            .Bookmarks.Item("z2000_010_05").Range.Text = Nz(z2000_010_05, "")
            .Bookmarks.Item("z2000_010_06").Range.Text = Nz(z2000_010_06, "")
            .Bookmarks.Item("z2000_010_07").Range.Text = Nz(z2000_010_07, "")
            .Bookmarks.Item("z2000_010_08").Range.Text = Nz(z2000_010_08, "")
            .Bookmarks.Item("z2000_010_09").Range.Text = Nz(z2000_010_09, "")
            .Bookmarks.Item("z2000_010_10").Range.Text = Nz(z2000_010_10, "")
            .Bookmarks.Item("z2000_010_11").Range.Text = Nz(z2000_010_11, "")
            .Bookmarks.Item("z2000_010_12").Range.Text = Nz(z2000_010_12, "")
            .Bookmarks.Item("z2000_010_13").Range.Text = Nz(z2000_010_13, "")
            .Bookmarks.Item("z2000_010_14").Range.Text = Nz(z2000_010_14, "")
            .Bookmarks.Item("z2000_010_15").Range.Text = Nz(z2000_010_15, "")
            .Bookmarks.Item("z2000_010_16").Range.Text = Nz(z2000_010_16, "")
            .Bookmarks.Item("z2000_010_17").Range.Text = Nz(z2000_010_17, "")
            .Bookmarks.Item("z2000_010_18").Range.Text = Nz(z2000_010_18, "")
            .Bookmarks.Item("z2000_010_19").Range.Text = Nz(z2000_010_19, "")
            .Bookmarks.Item("z2000_010_20").Range.Text = Nz(z2000_010_20, "")
            .Bookmarks.Item("z2000_010_21").Range.Text = Nz(z2000_010_21, "")
            .Bookmarks.Item("z2000_010_22").Range.Text = Nz(z2000_010_22, "")
            .Bookmarks.Item("z2000_010_23").Range.Text = Nz(z2000_010_23, "")
            .Bookmarks.Item("z2000_010_24").Range.Text = Nz(z2000_010_24, "")
            .Bookmarks.Item("z2000_010_25").Range.Text = Nz(z2000_010_25, "")
            .Bookmarks.Item("z2000_010_26").Range.Text = Nz(z2000_010_26, "")
            .SaveAs strPathWord
        End With
        Set app = Nothing
    End If
    funOutputWord = True
Exit_:
    Exit Sub
Err_:
    funOutputWord = False
    Err.Clear
    app.Quit
    Resume Exit_
End Sub
Private Sub Выгрузка_Click()
Dim strPathDot As String, strPathWord As String
    strPathDot = CurrentProject.Path & "\Dot\итог14.dot"
    strPathWord = CurrentProject.Path & "\Word\" & z2000_010_04 & ".doc"
    Call funOutputWord(strPathDot, strPathWord)
End Sub
0
Миниатюры
Код VBA в Access 2010 работает, в Access 2007 выдает ошибку  
Эксперт MS Access
6641 / 4237 / 263
Регистрация: 12.08.2011
Сообщений: 12,288
28.09.2012, 07:49 18
Это сообщение говорит о том, что у вас в референсах нет Word'а, поставьте галочку.
1
Миниатюры
Код VBA в Access 2010 работает, в Access 2007 выдает ошибку  
512 / 21 / 2
Регистрация: 11.03.2012
Сообщений: 447
28.09.2012, 08:24  [ТС] 19
Я уже ставила - выдает ту же ошибку.
Я пишу программу в двух Access (2007 и 2010), поэтому подклученные библиотеки в 2010 не работают в 2007
0
512 / 21 / 2
Регистрация: 11.03.2012
Сообщений: 447
28.09.2012, 08:31  [ТС] 20
Я попыталась сделать следующее:

Visual Basic
1
2
3
4
Function funOutputWord(strPathDot As String, strPathWord As String, Application As Object) As Boolean
On Error GoTo Err_
Dim app As Word.Application
Set app = GreateObject("Word.Application")
ошибка ушла, но появилась другая:
0
Миниатюры
Код VBA в Access 2010 работает, в Access 2007 выдает ошибку  
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2012, 08:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Перенос базы Access 2010 в Access 2007
столкнулся с проблемой то что 2010 версия не сохраняет в формате 2007 кто сталкивался или имеет...

Отличие access 2007 от access 2010
привет всем)) знатоки-форумчане, подскажите пожалуйста, сильно ли отличается 2007 аксесс от 2010?...

access 2010 в скомпилированном файле accde не работает VBA
access 2010 в скомпилированном файле accde не работает VBA. кто сталкивался? может есть где можно...

Как вытащить код из модуля VBA базы данных Access 2010
Объясняю ситуацию. Есть файл базы данных Access 2010 (писала сама). Все работало нормально. Но,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.