Показать полную графическую версию : [решено] можно ли реализовать в vb6 сравнение 2 таблиц odt?
artemu88
20-09-2018, 09:39
добрый день! Как реализовать (и возможно ли) в vb6 сравнение двух таблиц ods (openofficecalc) или dbf? Просто даже пока не знаю куда копать))
Заранее спасибо!
(и возможно ли) в vb6 сравнение двух таблиц ods (openofficecalc) »
А как в Вашем представлении должно вообще выглядеть сравнение двух таблиц (не суть чьих)?
или dbf»
Тот же вопрос.
Теоретически можно попробовать посмотреть, что можно сделать для доступа к OpenOffice SpreadSheet: OpenOffice SpreadSheet connection strings - ConnectionStrings.com (https://www.connectionstrings.com/openoffice-spreadsheet/). С доступом же к dbf проблем быть не должно в принципе, главное — знать, что это за dbf.
artemu88
20-09-2018, 13:29
Я думаю, что нужно по индексированному полю (присутствующему в двух таблицах и где, например каждой организации соответствует определенная сумма) сравнивать. И заполнять следующие ячейки недостающими значениями. Только как вывод всего этого в отдельную книгу осуществить я не знаю.
В vba более или менее понятно, нашел на просторах интернета и то понял не до конца. А как в vb6 это реализовать вообще темный лес))
А как в vb6 это реализовать вообще темный лес)) »
Да практически точно так же, как на VBA. Там разницы между языками с гулькин нос.
artemu88
20-09-2018, 13:46
точно также с указанием пути к книге и номерами листов и диапазонов? А есть что-нибудь почитать по этому вопросу? Просто ничего не нашел
Да практически любое пособие по VB, от 800-1200 страниц и выше, смотрите раздел по работе с базами данных.
artemu88
04-10-2018, 17:22
сравнил 2 листа в экселе при помощи модуля - все получилось
хотел спросить как подключить книгу эксель из текстового поля в vb6, чтобы пользователь указывал путь к первой книге и путь ко второй книге, нажимал кнопку "сравнить" и все сравнивалось. код сравнения есть. Не знаю как реализовать подключение книги через текстовое поле text1. Как бд подключает, но как дальше работать с синтаксисом vba в vb6 для сравнения книг?
Заранее спасибо за ответ!
Покажите код, опишите, что вызывает вопросы.
artemu88
05-10-2018, 08:11
Код прикрепил, сначала делаю соединение с бд, может как то по-другому надо?
Спасибо!
artemu88
05-10-2018, 12:53
Прошу прощения, исправило код, но все равно не видит файл как рабочую книгу
Option Explicit
Dim oldRow As Integer
Dim newRow As Integer
Dim lrow_input As Integer, lrow_output As Integer
Dim WB_Input As Workbook
Dim WB_Output As Workbook
Dim WS_Input As Worksheet
Dim WS_Output As Worksheet
Dim Excel As Object, sWBName$, sFullPath As String
Dim sWBName1$, sFullPath1 As String
Dim MyFile
Private Sub Command1_Click()
Set Excel = CreateObject("Excel.Application")
sFullPath = Text1.Text
sWBName = Dir(sFullPath)
sFullPath1 = Text2.Text
sWBName1 = Dir(sFullPath1)
WB_Input = Workbooks(sWBName)
WB_Output = Workbooks(sWBName1)
artemu88, я посмотрел на Ваш код, но так и не понял, что Вы хотите получить в целом. Если код в:
сравнил 2 листа в экселе при помощи модуля - все получилось »
был аналогичен — то Вы явно делаете что-то не то, поскольку Вы создаёте соединение, которое потом никак не используется в принципе, а дальше Вы начинаете работать с рабочими книгами и рабочими листами посредством Automation напрямую через Excel.Application. Понимаете?
Если выбросить всё относящееся к OLE DB, то для работы посредством Automation напрямую через Excel.Application должно быть примерно так:
…
' Если в проекте задана ссылка на библиотеку типов Microsoft Excel,https://i.imgur.com/O2S1qiH.png
' используем раннее связывание:
Dim objExcel As New Excel.Application
' Минус такого подхода — мы привязаны к конкретной версии библиотеки (читай — Microsoft Office).
' Если в проекте не задана ссылка на библиотеку типов Microsoft Excel,
' используем позднее связывание:
Dim objExcel As Object
Set objExcel = CreateObject("Excel.Application")
…
' В Text1.Text и Text2.Text должны быть полные пути к Рабочим книгам
Set WB_Input = objExcel.Workbooks.Open(Text1.Text)
Set WB_Output = objExcel.Workbooks.Open(Text2.Text)
' По-хорошему, перед их открытием ещё надо бы проверить, что файл Рабочей книги, указанный в Text1.Text, существует, и что он, как минимум, имеет расширение .xls/.xlsx.
…
artemu88
08-10-2018, 11:30
СПАСИБО ОГРОМНОЕ!!!!!!!
Все работает, теперь вопрос, как эти изменения сохранить. SaveAs не работает, можно ли как-то сохранить изменения во второй книге?
artemu88, а в каком месте Вы добавляли .SaveAs? Что значит «не работает» — как это выглядит? Почему не просто .Save?
artemu88
08-10-2018, 16:50
Все подправил, просто не разобрался сначала, все сохраняет в отдельную книгу!!!!!!!!!
MsgBox ("процедура закончена!")
ActiveWorkbook.SaveAs "C:\Users\Documents\бд\baza.xls"
Все работает
еще делал сейвом и тоже все работало, прошу прощения. СПАСИБО БОЛЬШОЕ ЗА ПОМОЩЬ!
в отдельную книгу!!!!!!!!! »
В отдельную — да, .SaveAs.
artemu88
09-10-2018, 09:36
Спасибо за помощь, очень вам благодарен!))
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.