Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Загрузка файла через Excel в БД Access в поле "Вложения"
 
Благодарю.
Загрузка файла через Excel в БД Access в поле "Вложения"
 
Я знаю про ограничения размера базы в 2 Гб и ограничения загружаемого файла в 256 Мб, просто есть определённая специфика, согласно которой необходимо небольшого размера файл сохранять именно в генерируемой строке БД. Текущих знаний sQL мне явно не хватит на реализацию собственными силами :sceptic:  
Загрузка файла через Excel в БД Access в поле "Вложения"
 
Цитата
Андрей VG написал:
Только программным способом через библиотеку Microsoft Access database engine object Library.
Не подскажите как это можно реализовать через Excel?

Вложение файлов и изображений в записи базы данных
Цитата
Вложение файлов в записи путем программирования

Access позволяет использовать модель объектов и интерфейсы программирования для вложения файлов в записи программным путем с помощью кода VBA (Visual Basic для приложений). Дополнительные сведения см. в статьях "LoadFromFile" и "SaveToFile" на веб-сайте MSDN https://msdn.microsoft.com.

Загрузка файла через Excel в БД Access в поле "Вложения"
 
Добрый день,

Имеется код VBA отправляющий данные из формы Excel в БД Access в соответствующие поля, в БД имеется поле "File" с типом "вложение" позволяющее сохранить файлы к соответствующей записи. Подскажите процедуру для загрузки файла, при условии, что известен путь расположения файла (например C:\File.pdf), данный файл так же создается через Excel, путем печати необходимых листов книги.
Скрытый текст
Привязка расположения объекта (поле со списком) к определённой ячейке
 

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

Имеется ли возможность объект Worksheets("").Shapes() привязать к определенной ячейке либо к строке, чтобы при раскрытии списка всплывающие списки не наслаивались друг на друга, а занимали свое ранее установленное расположение, либо макрос который переместит данный всплывающий спиок непосредственно на нужную ячейку? Например, расположение Worksheets("").Shapes(1) привязать к ячейке B5 либо к 5 строке листа?

Отправка данных из Excel в базу данных Access, Ошибка при отправке данных в БД
 
Цитата
Андрей VG написал:
Where [Проверка если данных в ячееке нет] Is Not Null
Благодарю за третий вариант, только мне данные строки, где в одной из ячейки нет данных так же загружать надо, столбец с пустой ячейкой был как раз чтобы показать эту проблему в моих вариантах.
Цитата
Tidus1988 написал:
так же в случае если ячейка пустая процедура не передает пустоту а останавливается
Проблема в том, что пользователь в определенные ячейки может не внести данные, при моих вариантах процедура останавливается так как не может загрузить пустое значение, в данном случае на 3 строке, данные всей динамической таблицы должны быть закружены, вне зависимости есть ли пустые данные в какой либо из ячеек, проста процедура не должна останавливаться при определении пустой ячейки.

Разобрался, исключил условие
Код
Where [Проверка если данных в ячееке нет] Is Not Null
Андрей VG еще раз спасибо.
Изменено: Tidus1988 - 21.08.2020 06:32:11
Отправка данных из Excel в базу данных Access, Ошибка при отправке данных в БД
 
Добрый день,

Имеется процедура на листе Excel, которая с помощью переменной, перебора строк в определенном диапазоне отправляет данные таблицы в базу данных Access. При этом возникают ошибки:
Скрытый текст

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

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

Примеры во вложении, буду признателен если укажите на причину:
1) ограничения отправки более 509 знаков во втором варианте;
2) игнорирования переменной строк в первом варианте;
3) ошибки при наличии пустых ячеек, так как отсутсвует значение по умолчанию.
Изменено: Tidus1988 - 20.08.2020 19:13:02
Compile error при превышении 1207 ед. элементов ComboBox
 
Цитата
vikttur написал:
неправильный
Возможно подскажите иной результат.
Compile error при превышении 1207 ед. элементов ComboBox
 
Цитата
Alemox написал:
Не нашёл макроса по созданию комбобоксов
Макрос размещен на листе SetofEvaluatedObjects
Скрытый текст

Проблема в том, что не имеется вся база возможных наименований, при этом в Базе определенный объем имеется, для того чтобы стандартизировать ввод используется ComboBox так как он позволяет не только выбирать значение, а так же вводит и собственное, которого может не оказаться в Базе.
Compile error при превышении 1207 ед. элементов ComboBox
 
Продолжение данной темы Перебор ComboBox на листе по условию, ComboBox

Так как по вышеуказанной ветке решить вопрос не получилось, решил через макрос создавать элементы ComboBox и назначать им требуемые атрибуты, однако при добавлении 1208 единицы элемента ComboBox стала появляться ошибка
Цитата
Compile error: object library invalid or contains references to object definitions that could not be found.
И элементы не создаются через макрос, можно их создавать вручную, но с ними уже ничего нельзя далее сделать через макрос, например, скрыть данный ComboBox, так же указывается вышеуказанная ошибка. Хотя предыдущие 1207 ед. я разместил через макрос.

Возможно есть ограничения на количество элементов или я что-то не так делаю, окончательно на листе подразумевается 3 000 элементов ComboBox. Данные списки убрать не получится, так как пользователи должны максимально стандартизировать ввод данных по адресам, что и позволяет элемент ComboBox.

Файл примера пришлось разбить на архивы, так как весит более 1,5 мб.
а что правила пишут о рпазмере вложения? [МОДЕРАТОР]
Перебор ComboBox на листе по условию, ComboBox
 
У меня же есть именованные диапазоны, которые я в файле сообщения #5 уже использовал по логическому условию. Просто там вручную номера объектов прописывать надо.
Цитата
Tidus1988 написал:
процедуру, которая заменить необходимость указания номера объекта, например ComboBox2, ComboBox3, а лишь будет прибавлять 1 либо отнимать 1 к текущему номеру изменяемого ComboBox, так как они все идут по очереди,
Изменено: Tidus1988 - 10.08.2020 19:59:25
Перебор ComboBox на листе по условию, ComboBox
 
Цитата
Nordheim написал:
ну я бы так не делал
Как я видел решение данной проблемы:

Все ComboBox идут строго поочередно, в каждых из зависимых ComboBox в процедуре изменения (Private Sub ComboBox_Change) прописать процедуру, которая заменить необходимость указания номера объекта, например ComboBox2, ComboBox3, а лишь будет прибавлять 1 либо отнимать 1 к текущему номеру изменяемого ComboBox, так как они все идут по очереди, соответственно не надо будет прописывать все номера объектов ComboBox в процедуре изменения (Private Sub ComboBox_Change) и тем самым можно маштабировать.
Перебор ComboBox на листе по условию, ComboBox
 
Цитата
Михаил Витальевич С. написал:
Уж слишком много улиц.
По последнему примеру, улицы имеют неизменный список, около 800 наименований, данный диапазон не меняется в зависимости от выбора предыдущих списков.

Зависимыми списками являются ComboBox2, ComboBox3, ComboBox4.
Изменено: Tidus1988 - 10.08.2020 07:58:02
Перебор ComboBox на листе по условию, ComboBox
 
Цитата
Nordheim написал:
сделайте плоскую табллицу с зависимостями
На листе "LocationRE", таблица с зависимостями для ComboBox строки 6 листа "SetofEvaluatedObjects".
Перебор ComboBox на листе по условию, ComboBox
 
Юрий М, уведомление, что сообщение процитировали.
Перебор ComboBox на листе по условию, ComboBox
 
Извиняюсь, пример прикрепил, ComboBox в строке 6 эталонные.
Логика списков заполнена в Private Sub ComboBox1_Change, Private Sub ComboBox2_Change.
Изменено: Tidus1988 - 08.08.2020 14:36:37
Перебор ComboBox на листе по условию, ComboBox
 
Пример прикрепил, он не до конца заполнен конечно, но понять возможно.

Т.е. если в ComboBox1 выбран определенный город/ область, то в ComboBox2 должны отразиться в списке районы именно данного города/области, в ComboBox3 отразиться в списке населенный пункт именно данного города/области и выбранного в ComboBox2 района, в ComboBox4 отразиться в списке микрорайоны именно данного города/области и выбранного в ComboBox3, ComboBox 5 свободный выбор.

пример ниже в сообщении автора
Перебор ComboBox на листе по условию, ComboBox
 
Добрый день, задался таким вопросом, возможно ли реализовать перебор ComboBox в при выборе значения в ComboBox являющимся критерием условия для следующего по очередности ComboBox (т.е. ComboBox1_Change в диапазоне ComboBox2 производятся соответствующие изменения) .

Пример:
Код
Private Sub ComboBox1_Change()

If ComboBox1.Text = "Case_1" Then

ComboBox2.ListFillRange = "Case_1"

ElseIf ComboBox1.Text = "Case_2" Then

ComboBox2.ListFillRange = "Case_2"

End If

End Sub

В ручную конечно можно перебрать ComboBox1, ComboBox2 и т.д., но проблема в том, что у меня имеется до 1000 строк на листе, и в каждой строке по 5 ComboBox наполнения списка каждых 4 ComboBox строки зависит от значения предыдущего, например:

1) Строка 1: Значение Combobox1 является условием для диапазона списка Combobox2; Значение Combobox2 является условием для диапазона списка Combobox3; Значение Combobox3 является условием для диапазона списка Combobox4; Значение Combobox4 является условием для диапазона списка Combobox5 (в данной строке наполнение списками закончено);

2) Строка 2: Значение Combobox5 является условием для диапазона списка Combobox6; Значение Combobox6 является условием для диапазона списка Combobox7; Значение Combobox7 является условием для диапазона списка Combobox8; Значение Combobox8 является условием для диапазона списка Combobox9 (в данной строке наполнение списками закончено и так далее по строка).

Вручную прописывать для изменения каждого из 4 ComboBox в строке слишком проблематично.

Возможно ли прописать какую-либо процедуру по которой:

1) Combobox1, Combobox5, Combobox10 и тд. будет всегда критерием для наполнения списка Combobox2, Combobox6, Combobox11 и тд. по названным диапазонам

Код
If ComboBox1.Text = "Case_1" Then

ComboBox2.ListFillRange = "Case_1"

ElseIf ComboBox1.Text = "Case_2" Then

ComboBox2.ListFillRange = "Case_2"

End If

2) Combobox2, Combobox6, Combobox11 и тд. будет всегда критерием для наполнения списка Combobox3, Combobox7, Combobox12 и тд. по названным диапазонам и так далее.
Код
If ComboBox2.Text = "Case_3" Then

ComboBox3.ListFillRange = "Case_3"

ElseIf ComboBox2.Text = "Case_4" Then

ComboBox3.ListFillRange = "Case_4"

End If

Без перебора наименований ComboBox вручную для каждого (ComboBox1_Change, ComboBox2_Change, ComboBox3_Change, ComboBox4_Change и так до 4000)?

Изменено: Tidus1988 - 07.08.2020 12:45:19
Скрытие объектов ActiveX находящихся на строке листа
 
Благодарю.
Скрытие объектов ActiveX находящихся на строке листа
 
Добрый день, возможно ли произвести скрытие объектов ActiveX, находящихся на строке листа или в определенном диапазоне ячеек?

Для скрытия всех объектов на листе я использую следующий макрос:
Код
Sub VisiblityFalse()
Dim myOLEobject As OLEObject

  For Each NeedtoHiddenOLEobject In ThisWorkbook.ActiveSheet.OLEObjects
    If NeedtoHiddenOLEobject .Name Like "ComboBox*" Then myOLEobject.Visible = False
  Next
End Sub

Возможно ли производить такие действия не по всему листу, а по определенному диапазону строк или ячеек на листе, где необходимые к скрытию объекты расположены?
VBA. "Как вписать во весь в экран" UserForm?
 
Цитата
Андрей VG написал:
чём-то загадочном своём
наверное не совсем точно выразился, как элементы пользовательской формы (текст, элементы управления и тд) разместить по центру, после вписания пользовательской формы во весь экран. А не в верхнем левом углу, как в приложенном файле примера.
VBA. "Как вписать во весь в экран" UserForm?
 
А как все это дело разместить по центру, а не в левом верхнем угле?
Изменено: Tidus1988 - 29.07.2020 20:36:56
Экспорт данных из access в excel по признаку
 
Цитата
БМВ написал:
Попробуйте все тоже самое только перенеся базу на локальный диск. Можно потестить через  LAN Speed Test.
2,5 секунды на HDD, на SSD менее секунды. Понятно, сетка мертвая.
Экспорт данных из access в excel по признаку
 
Цитата
Mnham написал:
На все ~6 секунд, база на сетевом диске 395252 записей
Протестировал данный код, у меня занимает 312 секунд, получается сетка мертвая?
Экспорт данных из access в excel по признаку
 
Цитата
БМВ написал: ...заполнить в массив и выгрузить разом на лист
К сожалению на это моих скудных знаний не хватит.

Цитата
[Для скорости лучше сперва заполнить в массив и выгрузить разом на лист.размерность просто узнать tbl.RecorsCounС данным
Данным кодом, при обращении к БД в 200 000 строк и 16 столбцов через сетевой диск, время выполнения составляет от 4 до 5 минут, это нормально или можно ускорить?
Экспорт данных из access в excel по признаку
 
Написал следующее, для меня подходит
Код
Sub TransferData()

Dim tbl As Recordset
Dim searchall As Range
Dim dbs As Database
Dim i As Integer

ActiveWorkbook.Unprotect Password:="123"
Sheets("Data").Visible = True
Sheets("Data").Select

Set dbs = DAO.OpenDatabase("D:\test\Data.accdb")
Set searchall = ActiveSheet.Range("C1")
 Set tbl = dbs.OpenRecordset("SELECT * FROM [OfferData] WHERE Mark = '" & searchall & "';")
  i = 3
  
  Application.Calculation = xlManual
  
 Do While Not tbl.EOF
  
   Cells(i, 1) = tbl.Fields("Links")
   Cells(i, 2) = tbl.Fields("Brand")
   Cells(i, 3) = tbl.Fields("Mark")
   Cells(i, 4) = tbl.Fields("Year")
   Cells(i, 5) = tbl.Fields("OfferPrice")
   Cells(i, 6) = tbl.Fields("City")
   Cells(i, 7) = tbl.Fields("Body")
   Cells(i, 8) = tbl.Fields("Engine")
   Cells(i, 9) = tbl.Fields("TypeOFGasoline")
   Cells(i, 10) = tbl.Fields("Transmission")
   Cells(i, 11) = tbl.Fields("DriveUnit")
   Cells(i, 12) = tbl.Fields("Description")
   Cells(i, 13) = tbl.Fields("Description2")
   Cells(i, 14) = tbl.Fields("OfferDate")
   
   i = i + 1
  tbl.MoveNext 
  
 Loop
 
 tbl.Close
 Set tbl = Nothing
  
dbs.Close
  Set dbs = Nothing
    
  Application.Calculation = xlAutomatic

ActiveWorkbook.Protect Password:="123" 
     
End Sub
Экспорт данных из access в excel по признаку
 
Цитата
Андрей VG написал:
Судя по  этой теме , ТС уже год как работает с Access, но уровень знаний, как-то не впечатляет.
Написал такой простой макрос, но не могу придумать как использовать заданные признаки для экспорта всех записей из базы данных соответствующие требуемым критериям:
Скрытый текст

или такой:
Скрытый текст
Изменено: Tidus1988 - 08.07.2020 09:06:22 (дополнен вторым примером)
Экспорт данных из access в excel по признаку
 
У меня есть макрос импорта из Excel в Access, не могу переделать его в обратную сторону
Скрытый текст
Экспорт данных из access в excel по признаку
 
Цитата
Андрей VG написал:
Microsoft Query
Благодарю, но в тот то и проблема, что задача как раз таки и реализовать с помощью макроса.
Экспорт данных из access в excel по признаку
 
Добрый день, помогите пожалуйста разобраться, не очень силен в VBA, имеется база данных (файл "Database1") в которой отражены данные по автотранспорту по следующим столбцам: Brand; Mark; Year; Body; Engine; TypeOFGasoline; Transmission; DriveUnit; Description.
Как можно через код VBA сформировать операцию при которой в файле Excel (файл "Form") по заданному признаку, в форму экспортируются все записи из базы данных соответствующие данным критериям?
Например Brand=Toyota; Mark=Tundra; Year=2018.
Страницы: 1 2 След.
Наверх