Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/136: Рейтинг темы: голосов - 136, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 21.01.2008
Сообщений: 240

Opendatabase

05.03.2008, 09:53. Показов 24855. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! :( Хочу спросить у вас совета. Мне необходимо использовать документы,допустим, из базы "Кадры" в базе "Договора". Я как обычно выбираю коллекция документов и работаю с ними. Но так как я использую не текущую базу,то конструкция
On Error Goto Errh
Dim reviewCol As NotesDocumentCollection
Dim reviewDoc As NotesDocument
Dim ws As New NotesUIWorkspace
Dim reviewdb As NotesDatabase, db As NotesDatabase
Set reviewdb = ws.currentDatabase.Database
Dim doc As NotesDocument
Dim i As Long
Dim IsNameListEmpty As Variant
Dim uidoc As NotesUIDocument
не подходит. Вместо
Dim ws As New NotesUIWorkspace
Dim reviewdb As NotesDatabase, db As NotesDatabase
Set reviewdb = ws.currentDatabase.Database
Я использую
Dim dir As NotesDbDirectory
Dim reviewdb As NotesDatabase, db As NotesDatabase
Set reviewdb = dir.OpenDatabase("kadry.nsf")
Но это не верно. Так в чем ошибка? Я ведь просто открываю базу по имени
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.03.2008, 09:53
Ответы с готовыми решениями:

Почему на строку Set db = DAO.OpenDatabase ругается VB
Самое начало. DAO подключен. Dim db As DAO.Database Dim rs As DAO.Recordset Set db = DAO.OpenDatabase('C:\SEMENkr_97.mdb')И VB...

Кто-нибудь открывал dbf-файл методом OpenDatabase?
Какие только параметры в OpenDatabase не пробовал, но прошел только этот: Set db = OpenDatabase('', dbDriverNoPrompt, False,...

Запрещает объявить переменную Recordset, Database и метод OpenDatabase
Добрый вечер, уважаемые форумчане! Столкнулась с такой проблемой: не получается объявить переменные как Recordset, Database и метод...


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

Или воспользуйтесь поиском по форуму:
19
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
05.03.2008, 10:06
Про пост: обрами код тегами.

Посмотри для начала
Dim Db as New NotesDatabase(SERVER, PATH)
И
Session.GetDatabase
0
0 / 0 / 0
Регистрация: 19.07.2007
Сообщений: 1,098
05.03.2008, 10:11
Code
1
2
Dim reviewdb As NotesDatabase("", "")
reviewdb.Open( "", "kadry.nsf")
Учтите, что это будет работать если kadry.nsf находится в корне папки data, если не в корне, то путь (2-й параметр в Open) должен быть относительно папки data...
0
0 / 0 / 0
Регистрация: 21.01.2008
Сообщений: 240
05.03.2008, 11:03
Сделала так
Sub Click(Source As Button)
Dim session As New NotesSession
Dim dbName As String
dbName = "Kadry.nsf"
Dim db As New NotesDatabase( "Phantom", "testsalbase\Kadry.nsf" )
Set db = session.GetDatabase( "Phantom", dbName)
Call db.Open( "", "" )
End Sub
Ничего не происходит :( Я так понимаю должна открыться база
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
05.03.2008, 11:08
kilcher
Вот так:

Code
1
2
3
4
5
6
7
8
9
Sub Click(Source As Button)
Dim session As New NotesSession
Dim dbName As String
dbName = "Kadry.nsf"
Set db = session.GetDatabase( "Phantom", dbName, False)
If Not (db is nothyng) then
...
end if
End Sub
0
0 / 0 / 0
Регистрация: 15.12.2006
Сообщений: 641
05.03.2008, 11:08
Эта задача решается 1 раз, и потом используется везде где только можно.
Алгоритм:
1. Создается документ настроек. В нем создается поле (или поля) хранящее путь до другой базы.
2. Пишется функция которая ищет этот документ настроек.
3. Пишется функция getKadryDatabase(), которая возвращает ссылку на базу.

Пример:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Function GetOrgDb() As NotesDatabase
Dim sess As New NotesSession
Dim db As NotesDatabase
Set db = sess.CurrentDatabase
Dim osdoc As NotesDocument
Set osdoc = GetApplicationProfileDoc()
If Not osdoc Is Nothyng Then
Set db = sess.GetDatabase(db.Server, osdoc.OrgPath(0), False)
If Not db Is Nothyng Then
If db.IsOpen Then
Set GetOrgDb = db
Else
Set GetOrgDb = Nothyng
End If
Else
Set GetOrgDb = Nothyng
End If
Else
Set GetOrgDb = Nothyng
End If
 
 
End Function
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
05.03.2008, 11:14
Забыл еще:
Dim db As NotesDatabase
0
0 / 0 / 0
Регистрация: 21.01.2008
Сообщений: 240
05.03.2008, 11:29
Цитата Сообщение от K-Fire
Эта задача решается 1 раз, и потом используется везде где только можно.
Алгоритм:
1. Создается документ настроек. В нем создается поле (или поля) хранящее путь до другой базы.
2. Пишется функция которая ищет этот документ настроек.
3. Пишется функция getKadryDatabase(), которая возвращает ссылку на базу.

Пример:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Function GetOrgDb() As NotesDatabase
Dim sess As New NotesSession
Dim db As NotesDatabase
Set db = sess.CurrentDatabase
Dim osdoc As NotesDocument
Set osdoc = GetApplicationProfileDoc()
If Not osdoc Is Nothyng Then
Set db = sess.GetDatabase(db.Server, osdoc.OrgPath(0), False)
If Not db Is Nothyng Then
If db.IsOpen Then
Set GetOrgDb = db
Else
Set GetOrgDb = Nothyng
End If
Else
Set GetOrgDb = Nothyng
End If
Else
Set GetOrgDb = Nothyng
End If
 
 
End Function



GetApplicationProfileDoc на это выдает ошибку.
0
0 / 0 / 0
Регистрация: 19.07.2007
Сообщений: 1,098
05.03.2008, 11:32
Не используйте чужие коды бездумно.. это просто пример.


Code
1
2
3
4
5
6
7
8
9
10
Sub Click(Source As Button)
Dim db As NotesDatabase
Dim session As New NotesSession
Dim dbName As String
dbName = "Kadry.nsf"
Set db = session.GetDatabase( "Phantom", dbName, False)
If Not (db is nothyng) then
...
end if
End Sub
этого Вам более чем достаточно
0
0 / 0 / 0
Регистрация: 21.01.2008
Сообщений: 240
05.03.2008, 11:36
Цитата Сообщение от Sandr
Не используйте чужие коды бездумно.. это просто пример.


Code
1
2
3
4
5
6
7
8
9
10
Sub Click(Source As Button)
Dim db As NotesDatabase
Dim session As New NotesSession
Dim dbName As String
dbName = "Kadry.nsf"
Set db = session.GetDatabase( "Phantom", dbName, False)
If Not (db is nothyng) then
...
end if
End Sub
этого Вам более чем достаточно
Спасибо,но так я уже делала-ничего не происходит
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
05.03.2008, 11:38
Цитата Сообщение от kilcher
Спасибо,но так я уже делала-ничего не происходит
А что должно быть?
0
0 / 0 / 0
Регистрация: 21.01.2008
Сообщений: 240
05.03.2008, 11:46
Цитата Сообщение от Medevic
А что должно быть?
я тормоз.В скриптах запуталась в конец! на формулах проще. Вобще то мне надо создать коллекцию доков.Но как я понимаю это делается с помощью NotesUIWorkspace,а открытие базы с помощью NotesSession. Т.е. сначала я открываю базу,а затем создаю рабочую область в которой отбираю документы?
0
0 / 0 / 0
Регистрация: 19.07.2007
Сообщений: 1,098
05.03.2008, 11:48
коллекцию через NotesUIWorkspace? Что-то новое...
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
05.03.2008, 11:51
Цитата Сообщение от kilcher
я тормоз.В скриптах запуталась в конец! на формулах проще. Вобще то мне надо создать коллекцию доков.Но как я понимаю это делается с помощью NotesUIWorkspace,а открытие базы с помощью NotesSession. Т.е. сначала я открываю базу,а затем создаю рабочую область в которой отбираю документы?
Может тебе нужно notesUIWorkspace.PickListCollection ?
В параметрах база указывается.
0
0 / 0 / 0
Регистрация: 21.01.2008
Сообщений: 240
05.03.2008, 11:55
Цитата Сообщение от Sandr
коллекцию через NotesUIWorkspace? Что-то новое...
Пример из help
Sub Click(Source As Button)
Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim item As NotesItem
Set db = session.CurrentDatabase
Set collection = workspace.PickListCollection( _
PICKLIST_CUSTOM, _
True, _
"snapper", _
"ProgWork2", _
"By Author", _
"My Dialog", _
"Please select a document or two." )
0
0 / 0 / 0
Регистрация: 19.07.2007
Сообщений: 1,098
05.03.2008, 12:00
kilcher
Вот, Вам только Set db = session.CurrentDatabase нужно по своему обработать, тоесть получить его указынным выше способом
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
05.03.2008, 12:01
kilcher
И в чем проблемы?
0
0 / 0 / 0
Регистрация: 21.01.2008
Сообщений: 240
05.03.2008, 13:14
Цитата Сообщение от Medevic
kilcher
И в чем проблемы?
База лежит не корне сервера. Может поэтому не работает и надо в
Set db = session.GetDatabase( "Phantom", dbName, False) добавить путь?
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
05.03.2008, 13:17
Цитата Сообщение от kilcher
База лежит не корне сервера. Может поэтому не работает и надо в
Set db = session.GetDatabase( "Phantom", dbName, False) добавить путь?
Сервер и базу надо указывать в notesUIWorkspace.PickListCollection. Остальное не нужно.
0
0 / 0 / 0
Регистрация: 21.01.2008
Сообщений: 240
05.03.2008, 13:41
Цитата Сообщение от Medevic
Сервер и базу надо указывать в notesUIWorkspace.PickListCollection. Остальное не нужно.

Усе разобралась наконец! Надо было путь подробный указать. Еще раз убеждаюсь,что лучше не мудрить.а делать все проще,как с первого раза приходит в голову.СПАСИБО ЗА ТЕРПЕНИЕ И ПОМОЩЬ!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru