Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что выбрать FlexGrid or DataGrid? надо открыть *.dbf-файл в VB 
:(
    Опции темы
Гость_Voldemar2004
Дата 23.9.2005, 13:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Если не известно число полей в БД, то как открыть с помощью FlexGrid или DataGrid + MS ADO Control файл *.dbf.

И как избавиться от гемморра с Пуск-Администратор-....>Пользовательский DSN (создать драйвер)чтобы сразу выбирался правильный драйвер для FoxPro.
  Вверх
Akina
Дата 23.9.2005, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



А добавь на форму компонент Data, установи необходимые параметры, и сделай его источником данных грида.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Гость_Voldemar2004
Дата 23.9.2005, 14:45 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А можно сделать подмену ДОС-символов 866 на win-1251 по принципу: открываю файл считываю его посимвольно (do until eof() .... eof() ) в массив (стрингового типа) и сравниваем: если символ имеет ДОС-кодировку, то заменяем этот символ на win-кодировку с помощью ф-ции OemToChar, ну и делаем это до конца файла. Вот так, причем если в ДОС-кодировке Латиница, то ее заменять не надо.

Не знаю, что лучше - когда весь файл *.dbf преобразуешь по вышеописанному принципу, или все-таки возня с Флекс-гридом. smile
  Вверх
Akina
Дата 23.9.2005, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



А почему посимвольно? конверти сразу всю строку...

Что-то походу ты себе лишнего геморроя ищешь... или что-то недоговариваешь.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Gannibal
Дата 23.9.2005, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



незнаю я вот пользуюсь ФлексГридом smile записи в него добовляю с помощью следуещего кода незабудь подлкючить библиотеку DAO

Код

Dim Db As Database
Dim Rst As Recordset
Dim intCount As Long
Dim i As Long

Set Db = OpenDatabase(App.Path & "\databaze\knihy.mdb")
Set Rst = Db.OpenRecordset("SELECT * FROM knihy ORDER BY Prijmeni ASC")

intCount = Rst.RecordCount
Rst.MoveFirst

For i = 0 To intCount - 1
  flxKnihy.AddItem Rst.Fields("ID") & vbTab & Rst.Fields("Prijmeni") _
  & vbTab & Rst.Fields("Jmeno") & vbTab & Rst.Fields("Dilo") _
  & vbTab & Rst.Fields("Zanr") & vbTab & Rst.Fields("Rok") & vbTab & Rst.Fields("Nakladatelstvi")
  Rst.MoveNext
Next i


вот ещё один способ записи похожий

Код

On Error GoTo dbError

flxKnihy.Rows = 1

Rst.MoveLast
dbStart:
  flxKnihy.AddItem Rst.Fields("ID") & vbTab & Rst.Fields("Prijmeni") _
  & vbTab & Rst.Fields("Jmeno") & vbTab & Rst.Fields("Dilo") _
  & vbTab & Rst.Fields("Zanr") & vbTab & Rst.Fields("Rok") & vbTab & Rst.Fields("Nakladatelstvi")
Rst.MovePrevious
GoTo dbStart
Exit Sub

dbError:


первы способ быстрее чем второй потомучто он неделает запросы в базе даных на каждое поле.. сразу записывает.. ето всётаки для Аццесса smile но думаю на ФохПро можно будет переделать без проблем smile


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Guest
Дата 23.9.2005, 15:37 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Akina @ 23.9.2005, 14:48)
А почему посимвольно? конверти сразу всю строку...

Что-то походу ты себе лишнего геморроя ищешь... или что-то недоговариваешь.


Цитата(M @ 23.9.2005, 14:52)
первы способ быстрее чем второй потомучто он неделает запросы в базе даных на каждое поле.. сразу записывает.. ето всётаки для Аццесса  но думаю на ФохПро можно будет переделать без проблем 


Вот я и думаю, как это переделать для ФоксПро (еще Досовский) без лишних заморочек. Потому что посмотрел на структуру файла.... А так в общем была такая задачка - дан текстовый файл, каждая запись в которой разделена символом амперсанда & , что означает - новая запись в поле, ну так ведь экспортировать довольно просто в Access VBA - там просто выбираешь символ разделения соответсвенный. коряво объяснил

Код
Set Rst = Db.OpenRecordset("SELECT * FROM knihy ORDER BY Prijmeni ASC")
Можно в несколько КомбоБокс воткнуть шаблонные операторы Эскуэля Select, From, Oredr By, чтобы юзеры сами выбирали, чего они хотят запросить.

  Вверх
Gannibal
Дата 23.9.2005, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



Цитата(Guest @ 23.9.2005, 14:37)


Можно в несколько КомбоБокс воткнуть шаблонные операторы Эскуэля Select, From, Oredr By, чтобы юзеры сами выбирали, чего они хотят запросить


сделать то так можно это без проблем я тоже так делал ну тока с поиском мне запрос надо было созддать и каким способом потом сортировать.. http://forum.vingrad.ru/index.php?showtopic=63953


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Guest
Дата 24.9.2005, 17:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Накиньте инфы (можно ссылку) по ФлексГриду. Ну и какие манипуляции с ним можно делать (удалять, записывать программным способом). Всем + , кто накинет (только добросовестно, а не 2 слова и пара строк). Обещаю. smile


M.E.G.U.S, я купил книгу, в которой рассказывается, как создавать собственные dll-ки со множеством функций по типу: поиск, сортировка, упорядочение, нормализация.... и т.д. Просто такие dll-ки очень удобны в последующих проектах, чем в одну кучу лепить каждый раз множество функций.
Книга называется "Программирование Баз Данных на VB 5. Авторы: Майкл Амундсен, Кэртис Смит. Издательство "Бином" + CD с лицензионными проектами и демонстрационными БД.

  Вверх
Voldemar2004
Дата 24.9.2005, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Как сохранить в *.dbf-файл таблицу FlexGrid'a.

Это сообщение отредактировал(а) Voldemar2004 - 24.9.2005, 19:59


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Gannibal
Дата 24.9.2005, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



инфы хочешь, читай, может помогу smile

http://hrestomvb.h11.ru/articl/db/wse_stati/flexgrid.php
http://www.sql.ru/forum/actualtopics.aspx?...E9%F2%E8&bid=22

в принципе думаю и етого достаточно.. а так описания дават для чего он тоже как то неочень .. сам могу сказать пару слов

если так взять по мне ФлексГрид (ФГ) работает как таблица в Екцеле smile переход по Ячейкам... ставить события и получать данные из данной ячейки пройти все ячейки получить данные и поставить запис в базу данных например тот же способ как я показывал выше запись в ФГ так же реализовать запис в БД.. почему бы и неть.. можно брать по строчно можно по ячейкам

сам толком сказать и немогу.. тоже недавно загорелось ФГ употреблять так пришлось копать от и до .. но всё равно всех нюансов незнаю smile

посмотри ещё здесь нащёт ДБФ smile http://www.sql.ru/forum/actualtopics.aspx?...E9%F2%E8&bid=22

Это сообщение отредактировал(а) M.E.G.U.S - 24.9.2005, 22:49


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Gannibal
Дата 24.9.2005, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



сейчас ссылочку кину на ФГ.. закачиваю фаил просто токо он чёто многовато весит smile

а вот и ссылочка http://rapidshare.de/files/5490212/FlexGrid.rar.html {20}МБ

Это сообщение отредактировал(а) M.E.G.U.S - 24.9.2005, 23:53


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Voldemar2004
Дата 25.9.2005, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



M.E.G.U.S, + smile Ох, много читать придется smile . Но это то, что надо smile .

У ДатаГрид такие же свойства, как и у ФлексГрида , класс-предок ведь один - Грид. Я так понял Флекс используется, когда надо открыть таблицу с неизвестным числом полей. А ДатаГрид - уже намертво привязан к конкретному файлу БД.



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Voldemar2004
Дата 25.9.2005, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



У меня опять проблема: на форме находится: Adodc1, MSHFlexGrid1.
Имеется некий файл DataBase.mdb в нем база данных например 'Персонал'.

Код

Option Explicit

Private Sub Command1_Click()
Dim DB As Database
Dim Rst As Recordset

If File1.FileName = "" Then
    MsgBox "Выберите файл *.mdb", vbInformation, "Сообщение"
    Else: MsgBox Left(File1.FileName, Len(File1.FileName) - 4) ' это для отладки

Dim sState As String
Dim sSQL As String

sSQL = Text1.Text '"SELECT * FROM Персонал WHERE ИМЯ = 'ИмяСотрудника'"

Adodc1.CommandType = adCmdText

Adodc1.RecordSource = sSQL
Adodc1.Refresh

MSHFlexGrid1.Refresh

End If

End Sub

Private Sub Dir1_Change()
File1.FileName = Dir1.Path
End Sub

Private Sub Drive1_Change()
On Error GoTo Err68
    
    Dir1.Path = Drive1.Drive

Err68: If Err.Number = 68 Then MsgBox "Диск не готов для чтения", vbCritical, "Ошибка"
End Sub


Вопрос такой: как можно сделать подключение таблицы во время работы программы, а не во время разработки. Файл, который требуется подключить юзер выбирает в FileListBox. Просто у меня все время вылетает ошибка на строке Adodc1.Refresh. smile


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Gannibal
Дата 25.9.2005, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



кде у тебя запрос идёт


Цитата(Voldemar2004 @ 25.9.2005, 11:16)
sSQL = Text1.Text '"SELECT * FROM Персонал WHERE ИМЯ = 'ИмяСотрудника'"


так здесь делай выбор таблицы какую тебе надо ты же один раз прочитал и тебе уже ненадо в принципе smile уже будет записано пока непрочитаешь второй раз, просто место персонал поставишь имя котороэ тебе надо.. а если хочешь целиком подключить новый файл то просто произвести инициализацию файла

Код

Set Db = OpenDatabase(App.Path & "\databaze\knihy.mdb")


птом после него запрос.. можешь обойтись и без рефреша в начале выполнения можешь поставить flxKnihy.Rows = 1 где
flxKnihy это название ФлексГрида

......теперь я незнаю если я тебя правельно понял то что ты хочешь сделать......



--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Gannibal
Дата 25.9.2005, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



вот ещё ссылочка может пригоиться smile http://www.codenet.ru/progr/vbasic/vb_db/


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Gannibal
Дата 25.9.2005, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



я здесь книжку нашёл может будет интерестно выложил её в топик http://forum.vingrad.ru/index.php?showtopic=52693 как раз я тебе вчера из неё посылал вырезки о ФГ


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0704 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.