Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Состояние DatabaseWindow и DoCmd.TransferSpreadsheet / 4 сообщений из 4, страница 1 из 1
14.12.2004, 15:17:47
    #32826914
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Состояние DatabaseWindow и DoCmd.TransferSpreadsheet
Импортирую лист из Excel
поскольку структура не известна то предоставляю
макросу самому создавать таблицу
если она уже существует то удаляю ее
Код: plaintext
1.
2.
3.
4.
5.
ALTER PROCEDURE DropTableIfExists_p(@TblName varchar( 30 ))
AS
SET NOCOUNT ON
if exists (select * from dbo.sysobjects where Name = @TblName and OBJECTPROPERTY(id, N'IsUserTable') =  1 )
exec ('drop table ' + @TblName)
Но макрос прочухивает наличие таблицы через служебные метаданные
и если она была (присутствует в метаданных) но после была удалена (отсутствует на сервере)
пытается в нее импортировать не создавая и естественно обламывается
обновляю RefreshDatabaseWindow инфу,
но команда выполняется асинхронно и может не успевать обновить
к началу выполнения макроса и облом повторяется
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Const strTable As String = "InC_Import_"
Private intSpId As Integer

intSpId = cnn.Execute("SELECT @@SPID").Collect( 0 )
    
    cnn.Execute "dbo.DropTableIfExists_p '" & strTable & intSpId & "'"
    CurrentProject.Application.RefreshDatabaseWindow
    
    DoCmd.TransferSpreadsheet acImport, , strTable & intSpId, txtFileName, True

может есть какое-то свойство по которому я могу организовать цикл задержки
чтобы к началу исполнения DoCmd обновление метаданных гарантированно завершилось
или выполнять это удаление через DoCmd.RunCommand
но там очень много комманд и хелп на них у меня зависает
может кто покажет как удалять таблицу через DoCmd.RunCommand acCmdDeleteTable
...
Рейтинг: 0 / 0
14.12.2004, 15:23:48
    #32826937
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Состояние DatabaseWindow и DoCmd.TransferSpreadsheet
гипотеза: может контейнеры поосвежать ?
типа currentdb.TableDefs.Refresh
...
Рейтинг: 0 / 0
14.12.2004, 15:31:00
    #32826956
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Состояние DatabaseWindow и DoCmd.TransferSpreadsheet
AccXPADP+MSSQL2K
...
Рейтинг: 0 / 0
14.12.2004, 15:46:22
    #32827000
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Состояние DatabaseWindow и DoCmd.TransferSpreadsheet
docmd.DeleteObject acTable,"mytable" в адп тоже работает
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Состояние DatabaseWindow и DoCmd.TransferSpreadsheet / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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