![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 20.01.2009
Сообщений: 43
|
![]()
Программа импортирует дбф в эксель. В фрагменте кода поиска дбф (инициализация userform)выдает ошибку run time error 424 object required. Не пойму в чем ошибка, выкладываю фрагмент кода, при погшаговом выполнении ошибка выскакивает на строке ComboBox.AddItem (s)
Private Sub UserForm_Initialize() Dim s As String Set fs = Application.FileSearch With fs .LookIn = "D:\test\" .Filename = "*.dbf" If .Execute > 0 Then For i = 1 To .FoundFiles.Count s = .FoundFiles(i) ComboBox.AddItem (s) Next i Else MsgBox "There were no files found." Unload UserForm End If End With End Sub |
![]() |
![]() |
![]() |
#2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
![]()
Ошибка возникает из-за того, что на форме отсутствует элемент управления с именем ComboBox
Попробуйте заменить ComboBox на ComboBox1 |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Добавлю, что во-первых, правильная запись
Код:
Код:
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 28.04.2010 в 06:30. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 20.01.2009
Сообщений: 43
|
![]()
Сделал все как посоветовали, получилось, теперь возникает другая ошибка когда я выбираю файл, и нажимаю на кнопку. Ошибка "run time error 5 Invalid procedure call or argument" в строке
With ActiveSheet.ListObjects.Add(SourceT ype:=0, Source:=Array( _ Вот весь код программы: Dim i As Integer Private Sub CommandButton1_Click() With ActiveSheet.ListObjects.Add(SourceT ype:=0, Source:=Array( _ "OLEDB;Provider=Microsoft.ACE.OLEDB .12.0;Password="""";User ID=Admin;Data Source=D:\test\;Mode=Share Deny Write;Extended Pro" _ , _ "perties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=18;Jet O" _ , _ "LEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Pas" _ , _ "sword="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Je" _ , _ "t OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False" _ ), Destination:=Range("$A$2")).QueryTa ble .CommandType = xlCmdTable .CommandText = Array("X") .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .PreserveColumnInfo = True .SourceDataFile = "D:\test\" + ComboBox1.List(ComboBox1.ListIndex) .ListObject.DisplayName = ComboBox1.List(ComboBox1.ListIndex) .Refresh BackgroundQuery:=False End With End Sub Private Sub UserForm_Initialize() Dim s As String Set fs = Application.FileSearch With fs .LookIn = "D:\test" .Filename = "*.dbf" If .Execute > 0 Then For i = 1 To .FoundFiles.Count s = .FoundFiles(i) ComboBox1.AddItem s Next i Else MsgBox "There were no files found." Unload UserForm End If End With End Sub |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 20.01.2009
Сообщений: 43
|
![]()
Именил код, как советовали в другом посте, при нажимании на кнопку ошибка не выскакивает, но и дбф не импортируется
Dim i As Integer Sub Main() Dim fName As String, fso With Application.FileDialog(msoFileDialo gOpen) .Title = "Óêàæèòå ôàéë": .Show If .SelectedItems.Count = 0 Then Exit Sub Else fName = .SelectedItems(1) End With Set fso = CreateObject("Scripting.FileSystemO bject") With ActiveSheet.QueryTables.Add(Connect ion:=Array( _ "OLEDB;Provider=Microsoft.Jet.OLEDB .4.0;Password="""";User ID=Admin;Data Source=" & fso.GetParentFolderName(fName) & _ ";Mode=Share Deny Write;Extended Properties="""";Jet", _ " OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=18;Jet OLEDB:Database ", _ "Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet O", _ "LEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compac", _ "t Without Replica Repair=False;Jet OLEDB:SFP=False"), Destination:=Range("A1")) .CommandType = xlCmdTable .CommandText = Array(fso.GetBaseName(fName)) .Refresh BackgroundQuery:=False End With End Sub Private Sub UserForm_Initialize() Dim myPath As String, myName As String myPath = "D:\test\": myName = Dir(myPath & "*.dbf") Do While myName <> "" ComboBox1.AddItem myName: myName = Dir Loop If ComboBox1.ListCount = 0 Then MsgBox "There were no files found." End Sub |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 20.01.2009
Сообщений: 43
|
![]()
Ой, извините, натупил, не подвязал к кнопке процедуру, уже все работает
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Nero - ошибка драйвера DMA. ошибка CRC | NecRoMat | Софт | 5 | 09.05.2012 01:29 |
Это ошибка Delphi или моя ошибка??? | bloodeagle | Общие вопросы Delphi | 3 | 12.11.2009 15:26 |
Ошибка в статье = ошибка в рограмме. | Alex Cones | Общие вопросы Delphi | 14 | 29.07.2009 18:17 |
Ошибка в Аfor i:=1 to SI do. Пишит что ошибка в SI | Алексей_xXx | Помощь студентам | 2 | 29.05.2009 00:09 |
...Ошибка 101 (net::ERR_CONNECTION_RESET): Неизвестная ошибка... | infrared | Помощь студентам | 0 | 16.04.2009 17:44 |