powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / база данных со ссылками на файлы
23 сообщений из 98, страница 4 из 4
база данных со ссылками на файлы
    #39920519
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Да могу, все без проблем
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920531
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Если изменить на dbOpenTable, то ругается на эту строчку
Set rst = CurrentDb.OpenRecordset("tblAttachedFiles", dbOpenTable)
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920545
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
Если изменить на dbOpenTable, то ругается на эту строчку
Set rst = CurrentDb.OpenRecordset("tblAttachedFiles", dbOpenTable)
Мне кажется выше тебе написали что там должно быть
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920546
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

Да видел, исправил на dbOpenSnapshot

Так на всякий случай
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920642
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Что еще может быть, есть идеи?
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39920866
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
Что еще может быть, есть идеи?
Код свой покажи, тот что вызывает ошибку. Полностью процедуру (или чего там у тебя).
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921487
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, день добрый!
Код: 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.
Private Sub cmdFileAdd_Click()
Dim dlgOpenFile As Object 'FileDialog
Dim strFileName As String, strFileNameNew As String
Dim rst As DAO.Recordset

'On Error Resume Next
strFileName = CurrentProject.Path & "\Files\"
    If Len(Dir$(strFileName, vbDirectory)) = 0 Then MkDir strFileName
Set dlgOpenFile = Application.FileDialog(1&) 'msoFileDialogOpen
    With dlgOpenFile
        .InitialFileName = CurrentProject.Path
        .AllowMultiSelect = False
        .Title = "Укажите прикрепляемый файл"
            If .Show = -1 Then
                strFileName = .SelectedItems(1)
                Set rst = CurrentDb.OpenRecordset("tblattachedfiles", dbOpenSnapshot)
                    With rst
                        .AddNew
                        .Fields(1) = Me.DocID
                        .Fields(2) = Mid(strFileName, InStrRev(strFileName, "\") + 1)
                        .Fields(3) = (Me.Text_ + "_") & CStr(.Fields(1)) & "_" & CStr(.Fields(0)) & Mid(.Fields(2), InStrRev(.Fields(2), "."))
                        .Update
                        .Bookmark = .LastModified
                        strFileNameNew = CurrentProject.Path & "\Files\" & .Fields(3)
                    End With
                FileCopy strFileName, strFileNameNew
                    If Err Then
                        Err.Clear
                        rst.Delete
                        MsgBox "Ooopps!..." & vbNewLine & "Не смогли прикрепить файл!", vbCritical
                    Else
                            With Me.lstFileName
                                .Requery
                                .Value = rst.Fields(0)
                            End With
                        lstFileName_Click
                    End If
                rst.Close
            Else
                MsgBox "А что отказались?", vbInformation
            End If
    End With
Set rst = Nothing
Set dlgOpenFile = Nothing
End Sub
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921588
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor, вроде ничего криминального не вижу. Протестировать мне не на чем, т.к. нет сервера MySQL.
Давай попробуем протестировать получение набора данных на другой технологии - ADO. Таким способом можно получить характеристики набора данных. Заведи новую БД Access (подключи таблицы) или создай в текущей новый модуль, подключи библиотеку доступа к данным ADO, добавь код. Код взят у Гетца&Ко
Код: 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.
Public Sub TestRecordsets()
    Dim rst As ADODB.Recordset
    
    Set rst = New ADODB.Recordset
    
    rst.Open "tblattachedfiles", CurrentProject.Connection, adOpenKeyset, adLockOptimistic, adCmdTableDirect
    Debug.Print "======================="
    RecordsetSupport rst
    rst.Close
    Set rst = Nothing
End Sub

Private Sub RecordsetSupport(rst As ADODB.Recordset)
    If rst.Supports(adAddNew) Then
        Debug.Print "Supports AddNew"
    Else
        Debug.Print "Doesn't support AddNew"
    End If
    If rst.Supports(adApproxPosition) Then
        Debug.Print "Supports AbsolutePosition"
    Else
        Debug.Print "Doesn't support AbsolutePosition"
    End If
    If rst.Supports(adBookmark) Then
        Debug.Print "Supports bookmarks"
    Else
        Debug.Print "Doesn't support bookmarks"
    End If
    If rst.Supports(adDelete) Then
        Debug.Print "Supports Delete"
    Else
        Debug.Print "Doesn't support Delete"
    End If
    If rst.Supports(adFind) Then
        Debug.Print "Supports Find"
    Else
        Debug.Print "Doesn't support Find"
    End If
    If rst.Supports(adHoldRecords) Then
        Debug.Print "Supports move without save"
    Else
        Debug.Print "Doesn't support move without save"
    End If
    If rst.Supports(adIndex) Then
        Debug.Print "Supports Index"
    Else
        Debug.Print "Doesn't support Index"
    End If
    If rst.Supports(adMovePrevious) Then
        Debug.Print "Supports MovePrevious"
    Else
        Debug.Print "Doesn't support MovePrevious"
    End If
    If rst.Supports(adResync) Then
        Debug.Print "Supports Resync"
    Else
        Debug.Print "Doesn't support Resync"
    End If
    If rst.Supports(adSeek) Then
        Debug.Print "Supports Seek"
    Else
        Debug.Print "Doesn't support Seek"
    End If
    If rst.Supports(adUpdate) Then
        Debug.Print "Supports Update"
    Else
        Debug.Print "Doesn't support Update"
    End If
    If rst.Supports(adUpdateBatch) Then
        Debug.Print "Supports UpdateBatch"
    Else
        Debug.Print "Doesn't support UpdateBatch"
    End If
End Sub


Запускаем TestRecordsets и смотрим результат в окне Immediate .
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921703
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor,

Вроде и нельзя сказать, что не показал код ошибки, но и толку с такого показа маловато...
Нужно было еще нажать Debug, тогда бы было ясно на какой строке падает, тогда бы возможно и сам понял причину...
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921710
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, доброе утро!

Вот что выдает.

=======================
Supports AddNew
Doesn't support AbsolutePosition
Supports bookmarks
Supports Delete
Supports Find
Supports move without save
Doesn't support Index
Supports MovePrevious
Doesn't support Resync
Doesn't support Seek
Supports Update
Supports UpdateBatch
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921716
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag
RusGor,

Нужно было еще нажать Debug.

Выше писал что ругается на .AddNew

Вот тут .Fields(3) = (Me.Text_ + "_") & CStr(.Fields(1)) & "_" & CStr(.Fields(0)) & Mid(.Fields(2), InStrRev(.Fields(2), "."))

Тут пишет что текущая запись отсутствует CStr(.Fields(1)) и тут CStr(.Fields(0))

.LastModified -операция не поддерживается для объектов данного типа
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921720
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921734
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
=======================
Supports AddNew
Doesn't support AbsolutePosition
Supports bookmarks
Supports Delete
Supports Find
Supports move without save
Doesn't support Index
Supports MovePrevious
Doesn't support Resync
Doesn't support Seek
Supports Update
Supports UpdateBatch
добавление данных источник поддерживает...
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921736
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
В этом может причина?
это к чему?
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921748
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Все взрыв мозга...
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921750
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург
это к чему?
к этому AbsolutePosition
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921754
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
Код: vbnet
1.
Set rst = CurrentDb.OpenRecordset("tblattachedfiles", dbOpenDynaset)

попробуй так переписать...


RusGor
Код: vbnet
1.
.Fields(3) = (Me.Text_ + "_") & CStr(.Fields(1)) & "_" & CStr(.Fields(0)) & Mid(.Fields(2), InStrRev(.Fields(2), "."))

тут возможно будет ошибка (проблема при работе MySQL, см. ссылку ниже). Попробуй переписать на ADO.

vmag,у тебя же проблемы вылазили с MySQL DAO + ODBC + MySql получение ключа-счетчика в момент создания записи Как решилось?
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921756
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
к этому AbsolutePosition
А что не так с этим свойством?
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921783
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

RusGor
Код: vbnet
1.
.Fields(0)



Именно тут. Выдает NULL
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921787
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

Не обращайте внимание.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39921796
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
vmag,у тебя же проблемы вылазили с MySQL DAO + ODBC + MySql получение ключа-счетчика в момент создания записи Как решилось?

Для DAO:
- запрос с сортировкой по ключу (чтоб последний был всегда последним)
- после добавления Requery + MoveLast
Все остальное не работает...
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39922547
RusGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург и vmag, здравствуйте!
Спасибо, что направили на путь истинный.
Панург
Код: vbnet
1.
Set rst = CurrentDb.OpenRecordset("tblattachedfiles", dbOpenDynaset)



RusGor
Код: vbnet
1.
.Fields(0) 

Индекс (на.. он мне нужен) только для уникальности имени файла.

vmag
Код: vbnet
1.
- после добавления Requery + MoveLast



Вот итог: не знаю на сколько верно, но работает. Может подскажите что исправить,.?
Код: 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.
Private Sub cmdFileAdd_Click()
Dim dlgOpenFile As Object 'FileDialog
Dim strFileName As String, strFileNameNew As String
Dim rst As DAO.Recordset

On Error Resume Next
strFileName = CurrentProject.Path & "\Files\"
    If Len(Dir$(strFileName, vbDirectory)) = 0 Then MkDir strFileName
Set dlgOpenFile = Application.FileDialog(1&) 'msoFileDialogOpen
    With dlgOpenFile
        .InitialFileName = CurrentProject.Path
        .AllowMultiSelect = False
        .Title = "Укажите прикрепляемый файл"
            If .Show = -1 Then
                strFileName = .SelectedItems(1)
                Set rst = CurrentDb.OpenRecordset("tblattachedfiles", dbOpenDynaset)
                    With rst
                        .AddNew
                        .Fields(1) = Me.DocID
                        .Fields(2) = (Me.Text_ + "_") & Format(Now(), "dd.mm.yyyy.hh.nn.ss") & Mid(strFileName, InStrRev(strFileName, "."))
                        .Fields(3) = 0
                        .Update
                        .Bookmark = .LastModified
                        .Requery
                        .MoveLast
                        strFileNameNew = CurrentProject.Path & "\Files\" & .Fields(2)
                    End With
                FileCopy strFileName, strFileNameNew
                    If Err Then
                        'Debug.Print Err.Number; Err.Description
                        Err.Clear
                        rst.Delete
                        MsgBox "Ooopps!..." & vbNewLine & "Не смогли прикрепить файл!", vbCritical
                    Else
                            With Me.lstFileName
                                .Requery
                                .Value = rst.Fields(0)
                            End With
                        lstFileName_Click
                    End If
                rst.Close
            Else
                MsgBox "А что отказались?", vbInformation
            End If
    End With
Set rst = Nothing
Set dlgOpenFile = Nothing
End Sub
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39922571
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RusGor
Код: vbnet
1.
Set rst = CurrentDb.OpenRecordset("tblattachedfiles", dbOpenDynaset)

Тут скорее всего нужен запрос с явной сортировкой по ключу, иначе ничто не гарантирует что новая запись будет последней в коде ниже. Да и вообще нужно подумать над этим набором - зачем тащить всю таблицу?...
RusGor
Код: vbnet
1.
2.
                        .Requery
                        .MoveLast




RusGor
Код: vbnet
1.
.Bookmark = .LastModified

Это лишнее в данном случае, ИМХО.


RusGor
Код: vbnet
1.
2.
3.
4.
5.
                FileCopy strFileName, strFileNameNew
                    If Err Then
                        Err.Clear
                        rst.Delete
                        MsgBox "Ooopps!..." & vbNewLine & "Не смогли прикрепить файл!", vbCritical

Эту часть для данного случая я бы протестировал дополнительно. Тормознул бы код выше на точке останова и открыл бы файл на редактирования другой программой.
...
Рейтинг: 0 / 0
23 сообщений из 98, страница 4 из 4
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / база данных со ссылками на файлы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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