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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос про базы данных, ? 
:(
    Опции темы
ArtNeoX
Дата 26.12.2005, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



На форме создана DataGrid для отображения содержимого отчета по столбцам и строкам.
Вот только ни как не пойму каким образом можно выделить содержимое всей таблицы и скопировать в буфер обмена.
И еще как можно экспортировать содержимое базы Microsoft Access с которой работает Visual Basic в Excel.
PM MAIL   Вверх
Flotskiy
Дата 27.12.2005, 07:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



ArtNeoX, привет!
Занимаюсь с БД Access. Выбираю данные с БД при помощи SQL- запросов, примерно:
Код

                sSqlString = "SELECT EksamList, Family, ОцМП, ОцМУ, ОцРус, (ОцМП+ОцРус) As Ball, Fak, FormaOb, PK " & _
                          "FROM Glavnaja, Eksamen " & VNoteB & " AND Glavnaja.GlavID=Eksamen.EksID " & _
                          "AND FormaOb='ОС' AND &Icirc;&ouml;&ETH;&oacute;&ntilde;<> Null " & _
                          "ORDER BY Fak, Family"

adoConnection.Open connectString
adoRecordset.CursorLocation = adUseClient
adoRecordset.Open sSqlString, adoConnection
lblSelekt.Caption = adoRecordset.RecordCount

    cmdExcel.Enabled = True

А этой кнопкой отправляю в Excel:
Код

Private Sub cmdExcel_Click()
On Error Resume Next
Dim iIndx As Integer
Dim iRowIndex As Integer
Dim iColIndex As Integer
Dim iRecordCount As Integer
Dim iFieldCount As Integer
Dim sMessage As String
Dim avRows As Variant
Dim excelVersion As Integer

'-- Read all of the records into our array
avRows = adoRecordset.GetRows()

'-- Determine how many fields and records
iRecordCount = UBound(avRows, 2) + 1
iFieldCount = UBound(avRows, 1) + 1

'-- Create reference variable for the spreadsheet
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
'On Error Resume Next
' в готовый файл
objExcel.Workbooks.Open (App.Path & "\Doc\PriemZO")

'-- We need this line to insure Excel remains visible if we switch
Set objTemp = objExcel

excelVersion = Val(objExcel.Application.Version)
If (excelVersion >= 8) Then
 Set objExcel = objExcel.ActiveSheet
End If

'-- Place the names of the fields as column headers --
iRowIndex = 1
iColIndex = 1
For iColIndex = 1 To iFieldCount
  With objExcel.Cells(iRowIndex, iColIndex)
     .Value = adoRecordset.Fields(iColIndex - 1).Name
     With .Font
       .Name = "Times New Roman"
       .Bold = True
       .Size = 12
     End With
  End With
Next

'-- memory management --
adoRecordset.Close
Set adoRecordset = Nothing

'-- Just add data --
With objExcel
  For iRowIndex = 2 To iRecordCount + 1
   For iColIndex = 1 To iFieldCount
    .Cells(iRowIndex, iColIndex).Value = avRows(iColIndex - 1, iRowIndex - 2)
   Next
  Next
End With

objExcel.Cells(1, 1).CurrentRegion.EntireColumn.AutoFit

End Sub



Это пример рабочий, если будут вопросы - отвечу, да и парни помогут.
С уважением

--------------------
FlotskiySk k
PM MAIL   Вверх
ArtNeoX
Дата 27.12.2005, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Как делать выборку из базы данных, например по фамилии или имени чтобы в DataGrid отображались только выбранные данные.
Да и есть толковая литература в сети по базам данных, что бы с нуля и далее...
PM MAIL   Вверх
cardinal
Дата 27.12.2005, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99





--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Flotskiy
Дата 28.12.2005, 06:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



ArtNeoX, привет
В разделе "Ссылки на интересные сайты" посмотри ссылку на сайт "DMK". Очень много примеров работы с БД. С них я начинал.
С укажением
--------------------
FlotskiySk k
PM MAIL   Вверх
ArtNeoX
Дата 30.12.2005, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Пытаюсь написать базу данных по статье http://www.vbnet.ru/articles/showarticle.aspx?id=178

"Для использования TrueDbGgrid нужно поставить соответствующую галочку в окне Components, которое вызывается нажатием правой кнопки мыши на панели TollBox. Также следует включить True Data Control Lite и Microsoft ADO Data Control."

но у меня в vb6 отсутствуют компоненты
ComponentOne True DataControl Lite 7.0
ComponentOne True DBGrid Pro 7.0 (OLEDB)
Microsoft ADO Data Control 6.0 (SP6) (OLEDB)
которые как я понял содержатся в файлах
c:\windows\system32\TDBG7.OCX
c:\windows\system32\TODBG7.OCX (OLE DB)
Где их можно скачать?
Бросьте кто нибудь на ящик
[email protected]


PM MAIL   Вверх
Exception
Дата 30.12.2005, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

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



Спроси у Voldemar2004, у него вродь были...
PM   Вверх
Voldemar2004
Дата 31.12.2005, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(ArtNeoX @ 27.12.2005, 19:50)
Как делать выборку из базы данных, например по фамилии или имени чтобы в DataGrid отображались только выбранные данные.

Код

    Data1.RecordSource = "Select <поле1, ... , полеN> From <имя_таблицы_без расширения (mdb/dbf...)>"
    Data1.Refresh
    TDBGrid1.Refresh
Цитата(ArtNeoX @ 30.12.2005, 20:09)
Microsoft ADO Data Control 6.0 (SP6) (OLEDB)
которые как я понял содержатся в файлах
c:\windows\system32\TDBG7.OCX
c:\windows\system32\TODBG7.OCX (OLE DB)
Microsoft ADO Data Control 6.0 - это компонент msadodc.ocx, а не
Цитата
c:\windows\system32\TDBG7.OCX
c:\windows\system32\TODBG7.OCX (OLE DB)


Цитата(ArtNeoX @ 30.12.2005, 20:09)
но у меня в vb6 отсутствуют компоненты
ComponentOne True DataControl Lite 7.0
По-моему это другие компонеты, которые не входят в состав стандартного пакета TDBgrid Pack. При установке они все видны в VB->Components... Советую ставить все в папку Windows, иначе могут возникнуть проблемы с регистрацией компонентов.


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

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


Шустрый
*


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

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



Помогите кто нибудь с написанием базы данных. smile
Я скину исходники. Программа готова вот только
1. нужно реализовать в программе выборку по условиям что бы это отображалось в DataGrid (Например отобразить всех с одной фамилией)
2. нужно реализовать в программе экспорт содержимого DataGrid в excel
3. как выделять содержимое DataGrid для копирования в буфер обмена.
кому не сложно помочь новичку, пишите [removed by moderator]
М
Akina
Еще одна просьба помогать в мыло - выкину тему в Центр помощи.


Это сообщение отредактировал(а) Akina - 6.1.2006, 13:10
PM MAIL   Вверх
ArtNeoX
Дата 7.1.2006, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



objExcel.Workbooks.Open (App.Path & "PriemZO")
это открывает файл в экселе
но ни чего туда не добавляется
например у меня 4 столбца и в них много строк
Код

With objExcel
  For iRowIndex = 2 To iRecordCount + 1
   For iColIndex = 1 To iFieldCount
    .Cells(iRowIndex, iColIndex).Value = avRows(iColIndex - 1, iRowIndex - 2)
   Next
  Next
End With
objExcel.Cells(1, 1).CurrentRegion.EntireColumn.AutoFit
End Sub

не помогает

Это сообщение отредактировал(а) cardinal - 7.1.2006, 16:49
PM MAIL   Вверх
cardinal
Дата 7.1.2006, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



ArtNeoX, используй теги для кода!


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
ArtNeoX
Дата 8.1.2006, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Какие?
smile
PM MAIL   Вверх
Dunka
Дата 8.1.2006, 14:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подскажите пожайлуста как в коде записать текущую дату в поле таблицы, чтобы поле с датой заполнялось автоматически, без нажатия на MonthView?
  Вверх
cardinal
Дата 8.1.2006, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



ArtNeoX, смотри кнопку "код" над сообщением!
Добавлено @ 15:24
Модератор: Пожалуйста, один топик - один вопрос.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
ArtNeoX
Дата 9.1.2006, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Мне кто нибудь может внятно объяснить
как сделать фильтр в DataGrid чтобы в виде таблицы отражались только нужные данные, например в таблице в первом столбце много фамилий, мне же нужно чтобы были показаны строчки с фамилиями, например Ивнов
как вывести данные в DataGrid в алфавитном порядке по первому столбцу
как экспортировать содержимое DataGrid в excel

Неужели это такие сложные вопросы для вас програмистов?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

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


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

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


 




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


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

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