| |
|
|
| | Здравствуйте!
Есть таблица на 150 полей, на основании которой создана форма. На форме располагается 150 флажков (каждый флажок "прикручен" к столбцу в таблице).
Задумка в том, чтобы пользователь при открытии формы самостоятельно (путем установки/снятия флажка и нажатия кнопки) мог выводить в эксель-файл нужные только ему столбцы.
Вроде бы, все работает. НО! При открытии получившегося эксел-файла оказывается, что, помимо выбранных столбцов, туда попадают:
-остальные столбцы (без данных и все ячейки закрашены серым цветом)
-повторно выводятся и нужные столбцы, вернее столбцы подписаны как флажки в базе (ячейки также закрашены серым цветом, им присвоено значение "-1").
Собственно, как это забороть, чтобы в эксель-файл попадали только выбранные столбцы?
Может создавать промежуточную таблицу и ее экспортироватьее в эксель, но это не знаю как реализовать... | |
| |
| |
| |
|
|
| | Можно собрать новую строку SQL запроса с учетом выделенных флажков, и выталкивать в Excel не данные формы, а данные этого запроса. | |
| |
| |
| |
|
|
| | А можно маленький пример, если не трудно? Сам синтаксис запроса на выборку я могу написать, но я не знаю, как прикрутить сюда зависимость от установки/снятия флажка. | |
| |
| |
| |
|
|
| | может поможет
http://hiprog.com/index.php?option=com_content&task=view&id=251661628 | |
| |
| |
| |
 28 Кб. |
|
| | => | |
| |
| |
| |
|
|
| | Лукас, Вы гений!
Я немного модифицировал Ваш код:
Private Sub btnExport_Click()
Dim i As Integer
Dim strSQL As String
strSQL = "SELECT "
For i = 0 To Me.Section(0).Controls.Count - 1
If Me.Controls("flg" & i).Value Then
strSQL = strSQL & Me.Section(0).Controls(i).ControlSource & ", "
End If
Next i
strSQL = Left$(strSQL, Len(strSQL) - 2) & " FROM Ваша таблица"
MsgBox strSQL
End Sub
А именно, изменил две последние строки на:
strSQL = Left$(strSQL, Len(strSQL) - 2) & " INTO Моя таблица" & " FROM Ваша таблица"
CurrentDb.QueryDefs("Мой запрос").SQL = strSQL
Таким образом я изменяю текст существующего в базе запроса на sql-строку, собранную Вашим кодом, потом с помощью запроса создаю таблицу с выбранными полями, а уже таблицу вывожу в эксель.
Огромное Вам спасибо! | |
| |
| |
| |
|
|
| | А зачем промежуточная таблица?
Можно:
1. Открыть рекордсет на созданной строке SQL и выводить его данные в Excel.
2. Изменить SQL заготовленного ранее запроса и выводить запрос в Excel. | |
| |
| |
| |
|
|
| | Ну да, Вы правы, просто я на радостях поторопился :-) | |
| |
| |
| |
|
|
| | Блин, а почему по нажатию "to Exel" ексель не открывается? или я вообще обленился? | |
| |
| |
| |
|
|
| | А должен?
http://hiprog.com/index.php?option=com_content&task=view&id=429 | |
| |
| |
|
|