Lotus

  • Автор темы Z9A
  • Дата начала
Z
#1
Для выгрузки из lotus в Access я использую ОДБС соединение, В шаблоне Access все поля проставила, где необходимо дата, числовое или текстовое, а также в некоторых полях поставила разрешения для ввода пустых строк....
Дальше пишу агента объевляю необходимые переменные Dim....потом открываю словари....нахожу путь к своему шаблоне Access......далее Set con = New ODBCConnection
Set qry = New ODBCQuery
Set result = New ODBCResultSet, после чего чищу таблицу открываю ее, далее в Lotus выбираю необходимую форму и после этого загвозка:Query = "(Del != ""1"") & (Form = ""Klient"") " 'клиент
Set DocCol = Db.Search( Query, DT, 0 )
Set docCur = DocCol.GetFirstDocument
Do While Not (docCur Is Nothing)

'загвозка тут

result.AddRow

tmpStr = docCur.GetItemValue( "DictValue") (0) & (" ") 'если я убираю (" ") у меня выдает ошибку,говорит что поле пустое и заполнятся не будет, что делать?? Хоят в Access самом проставлено, что пустые поля можно проставлять....поля все тектовые и в Lotus и в Access
Call result.SetValue(2, Left(tmpStr,80) ) 'Потом тут загвозка ограничение в Access можно 255 символов я убираю Left(tmpStr,80) и мне выдает опять ошибку, как тут быть??? поля все тектовые и в Lotus и в Access

Также дальше не могу вывести в Access числовае поля и дата время...подскажите какие необходимы свойства или методы так как что то как стекстовым у меня не получается....вот пример

tmpChis = docCur.GetItemValue( "NumIcon" ) (0) ---тут численное поле и в Lotus и в Access
Call result.SetValue(5, (" ") )

И как с датой

result.UpdateRow
Set docCur = DocCol.GetNextDocument(docCur )


Loop

Заранее спасибо....
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#2
здесь пробегало про ОДБЦ...
советовали АДО... (АктивХу воспользовать)
http://codeby.net/forum/threads/8952.html?hl=ADODB

но вот др. вопрос - а зачем аксесс как таковой? Проблем в жизни мало ;)
есть др. БД, SQLite например (он и на мобильных цустройствах есть - iPhone, например)
акцесовское междумордие - тоже не фонтан...
 
Z
#3
здесь пробегало про ОДБЦ...
советовали АДО... (АктивХу воспользовать)
http://codeby.net/forum/threads/8952.html?hl=ADODB

но вот др. вопрос - а зачем аксесс как таковой? Проблем в жизни мало ;)
есть др. БД, SQLite например (он и на мобильных цустройствах есть - iPhone, например)
акцесовское междумордие - тоже не фонтан...

Блин это я читала надо через ODBC, да блин я все подключилась, вот только не могу данные выгрузить поля то не сходятся то еще бред какой либо вылазиет....

Сказали в акцесс тут не чего не поделаешь....Порсто я еще все методы и свойства плохо знаю вот и числовые поля и даты не могу выгрузить, только пока текстовые, помогите если сможите....
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#4
я тогда помочь не могу...
ОДБЦ - очень по-разному себя ведет от источника
я давно (уж с 1997 г) не работал через ОДБЦ и особ. с акцесом

может кто-то ходил по этим граблям, расскажет

но принципиального неприятия АДО (все-равно уже аксец) - не понимаю
 
Z
#5
я тогда помочь не могу...
ОДБЦ - очень по-разному себя ведет от источника
я давно (уж с 1997 г) не работал через ОДБЦ и особ. с акцесом

может кто-то ходил по этим граблям, расскажет

но принципиального неприятия АДО (все-равно уже аксец) - не понимаю
[/quot

ТОгда не подскажешь вот смотри с помощью этого метода я вывожу текстовые поля
tmpStr = docCur.GetItemValue( "DictValue") (0) & (" ")
Call result.SetValue(2, Left(tmpStr,80) )

А при помощи его можно вывести дату и число , если да то как...???если нет то через что???

А то я учусь..а примера даже ни какого нет(((
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#6
Z9A
Не морочь себе голову! Пиши через ADO! Тут очень все доступно описано
Ну а такие моменты как соответствие типов данных - не стоит полагаться на СУБД. Лучше все обработать руками.

И включи приватные сообщения в форуме
 
Z
#7
Z9A
Не морочь себе голову! Пиши через ADO! Тут очень все доступно описано
Ну а такие моменты как соответствие типов данных - не стоит полагаться на СУБД. Лучше все обработать руками.

И включи приватные сообщения в форуме
Нет надо через ODBC.....просят только через ODBC, она все скидывает но выводит ошибки..и числовые не могу поля внести с датой...(((
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#8
Ну есть такие варианты:
1. Ты путаешь столбцы. Попробуй ссылаться не по индексу столбца, а по имени
2. Попробуй посмотреть какой тип данных ожидается в поле через FieldNativeDataType. Обрабатывай каждый тип отдельно через case.

в этом выражении
Код:
tmpChis = docCur.GetItemValue( "NumIcon" ) (0)
tmpChis - какой тип данных?

Через FieldSize можно обрезать строки под длинну поля

Ну и желательно обрабатывать ошибки
Код:
error% = odbcResultSet.GetError
 
Z
#9
Ну есть такие варианты:
1. Ты путаешь столбцы. Попробуй ссылаться не по индексу столбца, а по имени
2. Попробуй посмотреть какой тип данных ожидается в поле через FieldNativeDataType. Обрабатывай каждый тип отдельно через case.

в этом выражении
Код:
tmpChis = docCur.GetItemValue( "NumIcon" ) (0)
tmpChis - какой тип данных?

Через FieldSize можно обрезать строки под длинну поля

Ну и желательно обрабатывать ошибки
Код:
error% = odbcResultSet.GetError
Нет столбцы я точно не путаю хотя возможно....но если у столбца в Access русское название, что надо ссылаться на него...если да можешь строчку написать как это примерно..а то я пограмить только учусь...
И еще вот про тип данных по подробней нельзя где смотреть???и как обрабатывать каждый тип отдельно через case, мне надо будет еще объявить эту переменную???
FieldSize - и про эту функцию есть небольшой пример..как она обрезает строки....

А обработчик ошибок у меня стоит....!!!

заранее спасибо....

А если я вам скину код можете посмотреть его???и коменты поставлю и вы свои что не так)))!!если вас это не утруднит...


Нет столбцы я точно не путаю хотя возможно....но если у столбца в Access русское название, что надо ссылаться на него...если да можешь строчку написать как это примерно..а то я пограмить только учусь...
И еще вот про тип данных по подробней нельзя где смотреть???и как обрабатывать каждый тип отдельно через case, мне надо будет еще объявить эту переменную???
FieldSize - и про эту функцию есть небольшой пример..как она обрезает строки....

А обработчик ошибок у меня стоит....!!!

заранее спасибо....

А если я вам скину код можете посмотреть его???и коменты поставлю и вы свои что не так)))!!если вас это не утруднит...

И tmpChis я поставила Integer так как в Access и в поле у меня числовые поля стоят...
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#10
Код в студию!

про типы данных

Код:
Dim typeConst As Integer

Цикл по всем полям, которые надо экспортировать


if cstr( docCur.GetItemValue( <Имя поля> )(0) ) <> "" then

typeConst = result.FieldNativeDataType(i)

Select Case typeConst
Case SQL_CHAR : Call result.SetValue(i, cstr( docCur.GetItemValue( <Имя поля> )(0) ) )
Case SQL_NUMERIC : Call result.SetValue(i, cint( docCur.GetItemValue( <Имя поля> )(0) ) )
Case SQL_DECIMAL : Call result.SetValue(i, cdbl( docCur.GetItemValue( <Имя поля> )(0) ) )
Case SQL_INTEGER : Call result.SetValue(i, cint( docCur.GetItemValue( <Имя поля> )(0) ) )
Case SQL_DATE : Call result.SetValue(i, cdat( docCur.GetItemValue( <Имя поля> )(0) ) )
End Select

End If

конец цыкла
ну где-то так. Правда не совсем уверен относительно даты
Lotus Domino Designer 8.5 Help - Examples: FieldNativeDataType method

Подробней о типах данных почитай в хелпе по методу FieldNativeDataType.
А название полей на русском - изврат
 
Z
#11
Код в студию!
[/quote

Sub Initialize
On Error Goto errhandl
Dim Session As New NotesSession
Dim db As NotesDatabase
Dim dbDict As NotesDatabase
Dim DbOSICExp As NotesDatabase
Dim View As NotesView
Dim DocAccess As NotesDocument
Dim P As String
Dim RItem As NotesRichTextItem
Dim Object As NotesEmbeddedObject
Dim con As ODBCConnection
Dim qry As ODBCQuery
Dim result As ODBCResultSet
Dim docCur As NotesDocument
Dim DT As New NotesDateTime("")
Dim Query As String
Dim DocCol As NotesDocumentCollection
Dim tmpStr As String
Dim tmpChis As Integer
Dim tmpdata As New NotesDateTime

Set Db = Session.CurrentDataBase

Set DbDict = Session.GetDataBase(Db.Server,GetPath(Db) + "MSSDict.nsf")
If (Not DbDict.IsOpen) Then
Msgbox "Не найдена база 'Словарей'!"
Exit Sub
End If

Set DbOSICExp = Session.GetDataBase(Db.Server,GetPath(Db) + "OSICExpert.nsf")
If (Not DbOSICExp.IsOpen) Then
Msgbox "Не найдена база ' Жителей'!"
Exit Sub
End If

Set View = Db.GetView("AcsPathHeadV")
Set DocAccess = View.GetDocumentByKey(Session.UserName)
If (DocAccess Is Nothing) Then
Msgbox "Не найден настроечный документ пользователя " + Session.UserName + " !", 16, "Ошибка"
Exit Sub
End If

P$ = DocAccess.AcsPath(0)
If (P$ = "") Then
Msgbox "Не определен путь к базе данных в настроечном документе !", 16, "Ошибка"
Exit Sub
End If
DocAccess.FilledTables = ""
DocAccess.StateProcess = ""
Set RItem = DocAccess.GetFirstItem("DbAcs")
If (Not DocAccess.HasEmbedded) Then
Msgbox "Шаблон базы данных отсутствует !", 16, "Ошибка"
Exit Sub
End If
Forall EO In RItem.EmbeddedObjects
Set Object = EO
Exit Forall
End Forall
If (Object Is Nothing) Then
Msgbox "Шаблон базы данных отсутствует !", 16, "Ошибка"
Exit Sub
End If

Call Object.ExtractFile(P$)




Set con = New ODBCConnection
Set qry = New ODBCQuery
Set result = New ODBCResultSet
Set qry.Connection = con
Set result.Query = qry
con.ConnectTo("База данных MS Access")
qry.SQL = "DELETE * FROM Ser"
If Not result.Execute Then
Messagebox result.GetExtendedErrorMessage,, _
result.GetErrorMessage
Exit Sub
End If
qry.SQL = "SELECT * FROM Ser"
If Not result.Execute Then
Messagebox result.GetExtendedErrorMessage,, _
result.GetErrorMessage
Exit Sub
End If


Query = "(Del != ""1"") & (Form = ""Kontakt"") " 'Контакты
Set DocCol = Db.Search( Query, DT, 0 )
Set docCur = DocCol.GetFirstDocument
Do While Not (docCur Is Nothing)




result.AddRow
tmpStr = docCur.GetItemValue( "DictValue")(0) & (" ") ' вот тут у меня и ошибки с текстовыми полями чтоб заполянло пустые поля пришлось ставить ghj,tks (" "), а так выдает ошибку
Call result.SetValue(2, Left(tmpStr,65) ) 'тут пришлось ставить размер, а то тоже ошибку....хотя в Access я проставила что поля текстовые и размер и разрешения пустых строк...там свойства есть

'tmpStr = docCur.GetItemValue( "C_ObjCertific" )(0) & (6)
'Call result.SetValue(3, Left(tmpStr,65) )

tmpChis = docCur.GetItemValue( "NumIcon" ) (0) 'тут у меня поле численное и не выводит опять ошибку...(((пожет не так прописала не хочет из лотуса в акцесс, да кстати поле еще скрытое...
Call result.SetValue(5, "NumIcon" )

tmpdata = docCur.GetItemValue( "C_StartDate" )' ни как не грузит из шаблона лотуса в акцесс

result.UpdateRow
Set docCur = DocCol.GetNextDocument( docCur )
Loop

result.Close(DB_CLOSE)
con.Disconnect


Goto myexit
errhandl: 'обработчик ошибок
Messagebox Cstr(Err) & " " & Error & " in # " & Cstr(Erl)
tmpStr = Inputbox$( "111","222", docCur.UniversalID)
Resume myexit
myexit:
End Sub

Спасибо......

Я просто сейчас ижу и програмлю....что нетак почему в Access не забивает, текстовые забивает а дату и номер нет...((( ;)
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#12
прошу прощения. Надеюсь это опечатка
1.
Код:
Call result.SetValue(5, "NumIcon" )
"NumIcon" - это занчение? ;)
Тогда зачем это?
Код:
tmpChis = docCur.GetItemValue( "NumIcon" ) (0) 'тут у меня поле численное и не выводит опять ошибку...
(((пожет не так прописала не хочет из лотуса в акцесс, да кстати поле еще скрытое...
Тут надо написать Call result.SetValue(5, tmpChis )

2.
Код:
tmpdata = docCur.GetItemValue( "C_StartDate" )' ни как не грузит из шаблона лотуса в акцесс
а где присвоение значения в Access?

А тут Call result.SetValue( <номер столбца>, tmpdata )
 
Z
#13
Код в студию!

про типы данных

Код:
Dim typeConst As Integer

Цикл по всем полям, которые надо экспортировать


if cstr( docCur.GetItemValue( <Имя поля> )(0) ) <> "" then - [color="#FF0000"]тут какое имя поля вводить не пойму???[/color]

typeConst = result.FieldNativeDataType(i)

Select Case typeConst
Case SQL_CHAR : Call result.SetValue(5, cstr( docCur.GetItemValue( <Имя поля> )(0) ) ) [color="#FF0000"]- тут я понимаю надо те которые поля в лотусах,а что за цифра 5 номер ячейки столбца???[/color]
Case SQL_NUMERIC : Call result.SetValue(5, cint( docCur.GetItemValue( <Имя поля> )(0) ) )
Case SQL_DECIMAL : Call result.SetValue(5, cdbl( docCur.GetItemValue( <Имя поля> )(0) ) )
Case SQL_INTEGER : Call result.SetValue(5, cint( docCur.GetItemValue( <Имя поля> )(0) ) )
Case SQL_DATE : Call result.SetValue(5, cdat( docCur.GetItemValue( <Имя поля> )(0) ) )
End Select

End If

конец цыкла
ну где-то так. Правда не совсем уверен относительно даты
Lotus Domino Designer 8.5 Help - Examples: FieldNativeDataType method

Подробней о типах данных почитай в хелпе по методу FieldNativeDataType.
А название полей на русском - изврат

прошу прощения. Надеюсь это опечатка
1.
Код:
Call result.SetValue(5, "NumIcon" )
"NumIcon" - это занчение? ;)
Тогда зачем это?
Код:
tmpChis = docCur.GetItemValue( "NumIcon" ) (0) 'тут у меня поле численное и не выводит опять ошибку...
(((пожет не так прописала не хочет из лотуса в акцесс, да кстати поле еще скрытое...
Тут надо написать Call result.SetValue(5, tmpChis )

2.
Код:
tmpdata = docCur.GetItemValue( "C_StartDate" )' ни как не грузит из шаблона лотуса в акцесс
а где присвоение значения в Access? - т.е. присвоение???

А тут Call result.SetValue( <номер столбца>, tmpdata )
"NumIcon" - это поле в LOTUSE просто я эксперементировала)))вот 2 раза и написала))) если я так напишу как он узнает из какого поля брать??? Call result.SetValue(5, tmpChis )



Блин тупой из меня программер....(((
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#14
короче
вместо Call result.SetValue(5, "NumIcon" ) надо написать Call result.SetValue(5, tmpChis )
после tmpdata = docCur.GetItemValue( "C_StartDate" ) надо дописать Call result.SetValue( <номер столбца>, tmpdata )

"NumIcon" - это поле в LOTUSE просто я эксперементировала)))вот 2 раза и написала))) если я так напишу как он узнает из какого поля брать??? Call result.SetValue(5, tmpChis )
как откуда он будет знать????
Ты же загоняешь значение поля из Lotus в переменную tmpChis = docCur.GetItemValue( "NumIcon" ) (0)
Значит потом надо уже работать с переменной.
Читай хелп!!! у метода SetValue 2 параметра. первый - номер или имя столбца; второй - значение, которое надо передать
 
Z
#15
Код в студию!

про типы данных

Код:
Dim typeConst As Integer

Цикл по всем полям, которые надо экспортировать


if cstr( docCur.GetItemValue( <Имя поля> )(0) ) <> "" then

typeConst = result.FieldNativeDataType(i)

Select Case typeConst
Case SQL_CHAR : Call result.SetValue(i, cstr( docCur.GetItemValue( <Имя поля> )(0) ) )
Case SQL_NUMERIC : Call result.SetValue(i, cint( docCur.GetItemValue( <Имя поля> )(0) ) )
Case SQL_DECIMAL : Call result.SetValue(i, cdbl( docCur.GetItemValue( <Имя поля> )(0) ) )
Case SQL_INTEGER : Call result.SetValue(i, cint( docCur.GetItemValue( <Имя поля> )(0) ) )
Case SQL_DATE : Call result.SetValue(i, cdat( docCur.GetItemValue( <Имя поля> )(0) ) )
End Select

End If

конец цыкла
ну где-то так. Правда не совсем уверен относительно даты
Lotus Domino Designer 8.5 Help - Examples: FieldNativeDataType method

Подробней о типах данных почитай в хелпе по методу FieldNativeDataType.
А название полей на русском - изврат
А тут еще и переменную i надо объявлять а какой у нее тип???

короче
вместо Call result.SetValue(5, "NumIcon" ) надо написать Call result.SetValue(5, tmpChis )
после tmpdata = docCur.GetItemValue( "C_StartDate" ) надо дописать Call result.SetValue( <номер столбца>, tmpdata )


как откуда он будет знать????
Ты же загоняешь значение поля из Lotus в переменную tmpChis = docCur.GetItemValue( "NumIcon" ) (0)
Значит потом надо уже работать с переменной.
Читай хелп!!! у метода SetValue 2 параметра. первый - номер или имя столбца; второй - значение, которое надо передать

Да понела свои ошибки не внимательность...после того как tmpChis = docCur.GetItemValue( "NumIcon" ) (0)
Call result.SetValue(6, tmpChis ) - выдает ошибку: 13 Type mismatch in #114 мне кажется или поле там пустое или что т оеще...(((с полем в Access

tmpdata = docCur.GetItemValue( "C_StartDate" ) (0)
Call result.SetValue(5, tmpdata ) и тут просит Set может я не правельно объявила tmpdata я объявила как NitesDataTime
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#16
Если тебе надо передавать в Access только то что ты показала в коде - смотри 14-е сообщение

если надо много полей - все что у тебя написано между result.AddRow и result.UpdateRow замени на
Код:
Option Base 1

Dim typeConst As Integer
Dim i as integer
Dim FieldName as Variant

FieldName = "<Тут через; БЕЗ пробелов напиши перечень полей из Notes-формы которые надо экспортировать>"
' порядок полей должен сообветствовать порядку полей в Access. 
FieldName = fulltrim(split( FieldName, ";" ) )

for i = 1 to Ubound( FieldName )

if cstr( docCur.GetItemValue( FieldName(i) )(0) ) <> "" then

typeConst = result.FieldNativeDataType(i)

Select Case typeConst
Case SQL_CHAR : Call result.SetValue(i, cstr( docCur.GetItemValue( FieldName(i) )(0) ) )
Case SQL_NUMERIC : Call result.SetValue(i, cint( docCur.GetItemValue( FieldName(i) )(0) ) )
Case SQL_DECIMAL : Call result.SetValue(i, cdbl( docCur.GetItemValue( FieldName(i) )(0) ) )
Case SQL_INTEGER : Call result.SetValue(i, cint( docCur.GetItemValue( FieldName(i) )(0) ) )
Case SQL_DATE : Call result.SetValue(i, cdat( docCur.GetItemValue( FieldName(i) )(0) ) )
End Select

End If

Next
выражение Option Base 1 говорит о том, что индексы элементов массива будут начинаться 1, а не с 0. Это касается ТОЛЬКО массивов и не касается столбцов

При надобности в конструкцию Select Case нужно дописать недостоющие типы данных. Подробней о типах данных почитай в хелпе по методу FieldNativeDataType.

тут просит Set может я не правельно объявила tmpdata я объявила как NitesDataTime
правильно просит
 
Z
#17
Если тебе надо передавать в Access только то что ты показала в коде - смотри 14-е сообщение

если надо много полей - все что у тебя написано между result.AddRow и result.UpdateRow замени на
Код:
Option Base 1

Dim typeConst As Integer
Dim i as integer
Dim FieldName as Variant

FieldName = "<Тут через; БЕЗ пробелов напиши перечень полей из Notes-формы которые надо экспортировать>"
' порядок полей должен сообветствовать порядку полей в Access. 
FieldName = split( FieldName, ";" )

for i = 1 to Ubound( FieldName )

if cstr( docCur.GetItemValue( FieldName(i) )(0) ) <> "" then

typeConst = result.FieldNativeDataType(i)

Select Case typeConst
Case SQL_CHAR : Call result.SetValue(i, cstr( docCur.GetItemValue( FieldName(i) )(0) ) )
Case SQL_NUMERIC : Call result.SetValue(i, cint( docCur.GetItemValue( FieldName(i) )(0) ) )
Case SQL_DECIMAL : Call result.SetValue(i, cdbl( docCur.GetItemValue( FieldName(i) )(0) ) )
Case SQL_INTEGER : Call result.SetValue(i, cint( docCur.GetItemValue( FieldName(i) )(0) ) )
Case SQL_DATE : Call result.SetValue(i, cdat( docCur.GetItemValue( FieldName(i) )(0) ) )
End Select

End If

Next
выражение Option Base 1 говорит о том, что индексы элементов массива будут начинаться 1, а не с 0. Это касается ТОЛЬКО массивов и не касается столбцов

При надобности в конструкцию Select Case нужно дописать недостоющие типы данных. Подробней о типах данных почитай в хелпе по методу FieldNativeDataType.


правильно просит
да выгрузка большая, а потом таблицы надо будет связывать...)))но пока надо одну форму)))сейчас попробую через то что вы подсказали...а веревка и мыло или пистолет не помешал с такой лажей надо вешаться....((((эх...завтра вам сообщу....что получилось у начинающего программиста...)))с пистолетом и мылом..спасиббо вам...)))!!!

да выгрузка большая, а потом таблицы надо будет связывать...)))но пока надо одну форму)))сейчас попробую через то что вы подсказали...а веревка и мыло или пистолет не помешал с такой лажей надо вешаться....((((эх...завтра вам сообщу....что получилось у начинающего программиста...)))с пистолетом и мылом..спасиббо вам...)))!!!

А еще вопрос в Access ведь одно поле первое создается автоматом...он его считает ключевым как с ним быть???оно при вашем коде считать ся будет???

да выгрузка большая, а потом таблицы надо будет связывать...)))но пока надо одну форму)))сейчас попробую через то что вы подсказали...а веревка и мыло или пистолет не помешал с такой лажей надо вешаться....((((эх...завтра вам сообщу....что получилось у начинающего программиста...)))с пистолетом и мылом..спасиббо вам...)))!!!




А еще вопрос в Access ведь одно поле первое создается автоматом...он его считает ключевым как с ним быть???оно при вашем коде считать ся будет???

все сделал внесла нужные поля запустила и выдал такую ошибку 544 LS:do - Invalid row number.in #146 и не сбрасывается, такое ощущение зациклило....как быть????мне кажется так как в первый столбец оно значение стало вводить а там ключевой он....)))!!!
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#18
А еще вопрос в Access ведь одно поле первое создается автоматом...он его считает ключевым как с ним быть???оно при вашем коде считать ся будет???
Да... с ключевым полем проблемка.
Если таблицы в Access еще не сформированы, а в стадии разработки (не уверен что переименование существующего поля не приведет к потере данных) - то назови их так же как в Lotus. Это в будущем сильно упростит жизнь
Тогда в моем предложении можно убрать Option Base 1 и цикл начать не с 1 а с 0, выражения Call result.SetValue(i, cstr( docCur.GetItemValue( FieldName(i) )(0) ) ) заменить на Call result.SetValue( FieldName(i), cstr( docCur.GetItemValue( FieldName(i) )(0) ) ), а выражение typeConst = result.FieldNativeDataType(i) заменить на typeConst = result.FieldNativeDataType( FieldName(i) )
 
Z
#19
да выгрузка большая, а потом таблицы надо будет связывать...)))но пока надо одну форму)))сейчас попробую через то что вы подсказали...а веревка и мыло или пистолет не помешал с такой лажей надо вешаться....((((эх...завтра вам сообщу....что получилось у начинающего программиста...)))с пистолетом и мылом..спасиббо вам...)))!!!




А еще вопрос в Access ведь одно поле первое создается автоматом...он его считает ключевым как с ним быть???оно при вашем коде считать ся будет???




все сделал внесла нужные поля запустила и выдал такую ошибку 544 LS:do - Invalid row number.in #146 и не сбрасывается, такое ощущение зациклило....как быть????мне кажется так как в первый столбец оно значение стало вводить а там ключевой он....)))!!!

Вот на этих строках он меня зацикливает выдает ошибку Case SQL_DECIMAL : Call result.SetValue(i, cdbl( docCur.GetItemValue( FieldName(i) )(0) ) )
Case SQL_INTEGER : Call result.SetValue(i, cint( docCur.GetItemValue( FieldName(i) )(0) ) )
Case SQL_DATE : Call result.SetValue(i, cdat( docCur.GetItemValue( FieldName(i) )(0) ) )
ОШИБКА
544 LS:do - Invalid row number.in #146
почему???