|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Решил написать для своей БД клиент на VB, и сразу столкнулся с проблемой, хочется чтобы данные были представлены в виде таблицы, но не нашел ее на панели инструментов, подскажите как ее создать, и если можно как заполнить ее данными из селекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2011, 16:00 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Nekron хочется чтобы данные были представлены в виде таблицы, но не нашел ее на панели инструментов В тулсасах найди компанент грид Nekron как заполнить ее данными из селекта. читай про рекордсеты или компонент дата ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2011, 16:06 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
А возможно где-то пример клиента найти на VB? Также с использованием грида. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2011, 17:36 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Ты либо с Access переходишь, либо студент ) Grid это стандартный контрол в VB он нужен для отображения данных в табличной форме RecordSet - набор записей из БД, объект который обладает свойствами Лучше всего самому написать пример ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2011, 18:47 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Та студент я да ) К Firebird-базе клиент написать нужно, до этого не приходилось никогда, да про рекордсет я знаю в примерах видел. Dim rs As recordset Set rs = db.OpenRecordset ("SELECT * FROM [tblAdres] WHERE [fieldCity] = Владивосток") ну и как и из него потом данные брать тож есть. Больше проблемка была, как эти полученные данные в грид заносить, потому и хотелось пример, но вроде уже нашел инфу, В любом случае спасибо за помощь с гридом. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2011, 19:02 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
у всех гридов есть стандартное свойство datasource, set grid.datasource=rs да почитай еще про объект connection ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2011, 21:26 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Вот тут с помощью msflexgrid реализована корректировка справочника. Строки добавляются в последнюю строку. Сохранение (обновление) однократно не при изменении, а по команде сохранить. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2011, 21:28 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Ципихович ЭндрюNekron, вроде уже нашел инфу?? выложите, пжл http://www.infocity.kiev.ua/prog/basic/content/basic154.phtml Вот здесь вроде все что нужно описано о MSFlexGrid TpaBka Хмм на ваш способ ругается. Пишу: Код: plaintext 1. 2.
Я сделал так вместо Set MSFlexGrid1.DataSource = rs Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
bac За пример премного благодарен ), ознакомлюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2011, 21:40 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Nekron Ты наверное уже понял что rs это рекордсет Теперь осталось объяснить это твоему интерфейсу Нужно объявить переменную rs как новый объект рекордсет (адо) При этом не забыть про cn - это как раз и есть объект connection Пример открытия рекордсета можно прочитать в хелпе ацеса или в msdn И MSFlexGrid1 для тебя, это наверно не то, попробуй DataGrid1 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 02:10 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
А кстати Я так думаю что клиент = интерфейс ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 02:24 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Ципихович Эндрю, Х.З. может у тебя не установлен VB ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 11:25 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Ципихович ЭндрюTpaBka, не установлен VB? VB это что такое VB или VBА?? бугага если нет VB зачем ты флудиш в этой ветке твоя ветка здесь MSFlexGrid и РичТексбокс это файлы с расширением ocx проще говоря активикс элементы которые должны быть зарегены в системе. Короче установи VB и будет тебе счастье Не знаю у меня всё нормально ставится и в ворд MSFlexGrid и в ексель РичТексбокс только нах они там нужны? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 15:42 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Сделал я DataGrid, теперь на этот код Код: plaintext
Я думал может нужно колонки добавить, в моей таблице там 8 колонок на строку, а тут 2 по умолчанию, но пока не нашел где можно добавить, а может причина и не в этом даже? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 18:09 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
вот полный код может видно будет что не так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 19:09 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Зайди в проект-> сылки и подключи: MicroSoft ActiveX Data Object 2.8 Library Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 19:47 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
TpaBkaНе уточнял работает ли Jet.OLEDB.4.0 с fdb но думаю что таки да Человек работает с Firebird, зачем ему JET??? Тем более, у него есть рабочая строка подключения. Nekron - попробуй установить курсор в adUseClient ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 20:00 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Прийдется наверно на флексе писать, находил для даты еще такой вариант Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Но там говорит уже на строке rs.LockType = adLockBatchOptimistic , что неверные аргументы. Тут уже другой вопрос появился. У меня в базе 6-7 таблиц и я для каждой свой грид создам. Так вот как я думаю их отображать: Сделать сверху менюшку с названиями таблиц, при выборе которых они будут показываться таким образом: Все таблицы будут расположены на одном месте, но сделаны Visible=false, и при выборе определенной этот параметр будет становиться True, потом при выборе другой, всем таблицам становиться False и нужная True. Хорошее-ли это решение? Или можете посоветовать как-то лучше, но не сильно сложней. И еще одно для ввода данных в базу в нижней части расположу текстбоксы, лишние из которых для более мелких таблиц также буду делать невидимыми, и из них брать данные для инсертов. Если это тоже решение нормальное, то мне видиться проблема как подписать что каждый из них означает, наверно будет долговато отмечать все леблый с названиями на невидимость. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 20:00 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
NekronПрийдется наверно на флексе писать Если нужна бОльшая гибкость - то на можно и флексе. Но там много придется писать самому. NekronНо там говорит уже на строке rs.LockType = adLockBatchOptimistic , что неверные аргументы. это странно? Библиотека АДО подключена? Можно полный код и текст ошибки? NekronТак вот как я думаю их отображать: Сделать сверху менюшку с названиями таблиц, при выборе которых они будут показываться таким образом: Все таблицы будут расположены на одном месте, но сделаны Visible=false Если не жалко ресурсов и времени на загрузку формы, то используй просто SSTab (закладки) - на надо будет возиться с Visible. То же качается лейблов ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 20:07 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Shocker.Pro Код: plaintext 1. 2.
Вот в таком варианте в конце моего полного кода на строке rs.CursorLocation = adUseClient ошибка "Аргументы имеют неверный тип, выходят за пределы, вступают в конфликт" ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 20:07 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Shocker.Proто используй просто SSTab компонент Microsoft Tabbed Dialog Control надо подключить ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 20:09 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
NekronВот в таком варианте в конце моего полного кода на строке rs.CursorLocation = adUseClient ошибка "Аргументы имеют неверный тип, выходят за пределы, вступают в конфликт" тэкс 1) Option Explicit включен? 2) как объявлен rs? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 20:11 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Shocker.Proэто странно? Библиотека АДО подключена? Можно полный код и текст ошибки? Ну код я выше приводил. http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid={topic.id}&msg=10042820 Насчет того подключенали вообще-то не могу точно сказать, как мне проверить? А то что работало с флексом при таком коде Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 20:12 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
NekronНасчет того подключенали вообще-то не могу точно сказать, как мне проверить? Не публикуйте код кусками, делать нам больше нечего его по всему топику собирать, при том, что вы его правите. Для начала использовать Option Explicit, как я сказал выше, с константами сразу станет все ясно. Объявлять Connection и Recorset как показал Травка, а не через Create Object ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 20:18 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Shocker.Proтэкс 1) Option Explicit включен? 2) как объявлен rs? Экспликт включил без строки rs.CursorLocation = adUseClient работает(ну точнее ошибка что букмарк не тот как я писал выше) с ней говорит что adUseClient "Variable not defined" Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 20:20 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
NekronЭкспликт включил без строки rs.CursorLocation = adUseClient работает(ну точнее ошибка что букмарк не тот как я писал выше) с ней говорит что adUseClient "Variable not defined" Во-о-о-от! У тебя ж этих констант нет - вот ничего и не работает. Включи Option Explicit и не выключай никогда!!! Научись пользоваться клавишей F2. Далее, как сказал Травка - надо подключить Microsoft ActiveX Data Object 2.8 Library Далее: Код: plaintext 1. 2.
Далее пробуй все заново с датагридом, если есть желание. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 20:25 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Код: plaintext
ну а полный код на данный момент Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 20:26 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
NekronНу на такое ошибку выводит "User-defined type not defined" Ну так правильно выводит - надо подключить библиотеку ADO ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 20:27 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Во теперь работает Датагрид, спасибо. Гораздо удобей чем для флекса цикл писать. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 20:33 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Хмм, еще вопрос появился. Я так понял DataGrid-ы постоянно обновляются в зависимости от текущей информации в рекордсете? Так значит для других таблиц нужно создавать другие рекордсеты? или есть другое решение с одним рекордсетом? К томуже после создания более одного рекордсета они перестали работать. Если имеет значение то таблицы расположены на SSTab-е как вы посоветовали. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 21:32 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
NekronТак значит для других таблиц нужно создавать другие рекордсеты? После того, как ты присвоил свойству Recordset грида текущий рекордсет - можешь его закрыть и создать в этой же переменной другой рекордсет. Тот останется в гриде, пока не уничтожишь или не закроешь форму. NekronК томуже после создания более одного рекордсета они перестали работать. надо выпрямить руки или код. Кода не вижу, рук тоже. NekronЕсли имеет значение то таблицы расположены на SSTab-е как вы посоветовали.Не имеет. SSTab фактически контейнер для контролов, который управляет только их видимостью. ЗЫ: называй грид гридом, а не таблицей, а то путаница будет с таблицей БД ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 21:41 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Эмм ну вот так сделал Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Код: plaintext 1. 2.
А дополнительные рекордсеты я разобрался почему мешали работать я делал так Код: plaintext
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 21:54 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
вместо Код: plaintext
в данном случае надо Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 21:58 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Shocker.Proв данном случае надо Код: plaintext
ой Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 21:58 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
В принципе, можно вообще обойтись без rs достаточно сделать так: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 22:07 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Спасибо, выглядит проще, но Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 22:24 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
NekronСпасибо, выглядит проще, но Код: plaintext
Гм, я думал, DataSource это и есть Recordset, ща покопался - ан нет Через Nothing работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 22:31 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Да через него нормально, спасибо ). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 22:35 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Ооо я смотрю если изменять данные в гриде, то оно само передает изменения в базу и комитит ) намного упрощает мою работу, не нужно создавать всякие кнопки особо по апдейту. А не подскажете сразу есть-ли команды создания и удаления новых строк в гриде? Или это уже только командами в БД передавать отдельно? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 22:44 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
NekronОоо я смотрю если изменять данные в гриде, то оно само передает изменения в базу и комитит ) намного упрощает мою работу, не нужно создавать всякие кнопки особо по апдейту. А не подскажете сразу есть-ли команды создания и удаления новых строк в гриде? Или это уже только командами в БД передавать отдельно? Через рекордсет. .AddNew, .Delete Наверное прокатит и через DataGrid1.DataSource.AddNew, если не прокатит, придется оставлять rs не закрывая и наплодить их для каждого грида. При изменении рекордсета возможно датагриду потребуется рефреш ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 22:50 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Код: plaintext
ну а через рекорд нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 22:56 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
А нашел способ проще, у грида есть свойство такое даже AllowDelete ,AllowInsert и AllowUpdate. Просто поставить где надо True где не надо False. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 23:03 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
NekronА нашел способ проще, у грида есть свойство такое даже AllowDelete ,AllowInsert и AllowUpdate. Просто поставить где надо True где не надо False.Так то ж разрешение ПОЛЬЗОВАТЕЛЮ это делать. А ты спрашивал Nekronесть-ли команды создания и удаления новых строк в гриде? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 23:08 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
А извините ошибся, и напоследок можете подсказать будетли работать exe файл под виндовс без установленных компонентов для VB и под линуксом? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 23:19 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
не будет * 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 23:22 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Точнее так - виртуальная машина VB есть в виндах, начиная с XP, ADO тоже, а вот всяких контролов может не оказаться ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 23:24 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
Добавлю насчет добавления обновления и удаления записей Так вот не забывай, что если БД многопользовательская и нужно видеть обновления остальных юзеров, а и иногда и свои (если в запросе имеются вычисляемые поля), то нужно пересоздавать рекордсет его можно либо закрыть и заново открыть либо использовать свойство рекордсета Requery Так вот добавление или удаления записей в БД, Я, например, делаю ч/з SQL запрос (хотя иногда можно и rs.Add u rs.Del): Код: plaintext 1. 2.
где у Тебя идет процедура создания, и присвоение гриду рекордсета в событии Load, вынеси эту процедуру в отдельную функцию её можно даже сделать параметрической и вызывай себе в любой момент. Рекордсет объяви в модуле или хотя бы на уровне формы (т.е. сделай его public-не забывай закрывать рекордсет при выгрузке) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2011, 23:32 |
|
Как создать таблицу на форме VB?
|
|||
---|---|---|---|
#18+
NekronА не подскажете сразу есть-ли команды создания и удаления новых строк в гриде ? Или это уже только командами в БД передавать отдельно? При использовании ClientCursor - эти запросы генерируются сервисными компонентами. Хотя я вот смотрю в документацию по ADODB 2.8 - у Recordset есть свойства InsertCommand/UpdateCommand/DeleteCommand, через которые эти запросы можно настраивать. При использовании ServerCursor, IBProvider сам сгенерирует запросы для добавления/удаления/обновления. Однако вы можете задать их явно через свойства ADODB.Command/ADODB.Recordset - insert_sql , delete_sql , update_sql . Пример можно посмотреть здесь До версии IBProvider 3.5, автоматическая генерация запросов для обновления поддерживается только для запроса "select * from my_table". Начиная с 3.5 - запросы могут содержать WHERE/PLAN/ORDER BY/FOR UPDATE/ROWS и списки конкрентных колонок. Главное, чтобы результирующее множество содержало колонки первичного ключа таблицы. Если у вас возникнут дополнительные вопросы по поводу провайдера - пишите на форум IBProvider-а или на e-mail поддержки. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2011, 11:42 |
|
|
start [/forum/topic.php?all=1&fid=60&tid=2159013]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 171ms |
0 / 0 |