Здравствуйте подскажите пожалуйста, создал запрос query, который берет данные из файла источника(БДДС.xlsx), и файл источник и рабочий файл лежит в одной папке, все нормально работает, но когда я эту папку перемещаю в другое место на диске или на другой компьютер он ругается, что не может найти источник данных. Данные -> подключения -> свойства -> строка подключения сейчас такая DSN=Excel Files;DBQ=C:\Информационное поле\БДДС.xlsx;DefaultDir=C:\Информационное поле;DriverId=1046;MaxBufferSize=2048;PageTimeout=5; я так понимаю, что здесь нужно прописать, как то указать, что файл источник лежит в той же папке что и рабочий файл. А как прописать? Помогите пожалуйста весь интернет перерыл ничего не нашел.
Здравствуйте подскажите пожалуйста, создал запрос query, который берет данные из файла источника(БДДС.xlsx), и файл источник и рабочий файл лежит в одной папке, все нормально работает, но когда я эту папку перемещаю в другое место на диске или на другой компьютер он ругается, что не может найти источник данных. Данные -> подключения -> свойства -> строка подключения сейчас такая DSN=Excel Files;DBQ=C:\Информационное поле\БДДС.xlsx;DefaultDir=C:\Информационное поле;DriverId=1046;MaxBufferSize=2048;PageTimeout=5; я так понимаю, что здесь нужно прописать, как то указать, что файл источник лежит в той же папке что и рабочий файл. А как прописать? Помогите пожалуйста весь интернет перерыл ничего не нашел.makc1985
Не совсем так. Мне нужно, чтобы Вы ЗАНОВО, с самого начала создали нужный запрос. Тогда там будут все данные - и те, которые потом нужно поменять, и те, которые нужно оставить неизменными. Примерный вид макроса такой[vba]
Код
Sub Макрос4() Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False With ActiveWorkbook.Connections("Запрос из Excel Files1").ODBCConnection .BackgroundQuery = True .CommandText = Array( _ "SELECT `'Реальный пример$'`.Boroda, `'Реальный пример$'`.Расходы, `'Реальный пример$'`.`692399`, `'Реальный пример$" _ , _ "'`.F4" & Chr(13) & "" & Chr(10) & "FROM `C:\Мои\Стереть\1231557.xls`.`'Реальный пример$'` `'Реальный пример$'`" _ ) .CommandType = xlCmdSql .Connection = _ "ODBC;DSN=Excel Files;DBQ=C:\Мои\Стереть\1231557.xls;DefaultDir=C:\Мои\Стереть;DriverId=1046;MaxBufferSize=2048;PageTimeout=3;" .RefreshOnFileOpen = False .SavePassword = False .SourceConnectionFile = "" .SourceDataFile = "" .ServerCredentialsMethod = xlCredentialsMethodIntegrated .AlwaysUseConnectionFile = False End With With ActiveWorkbook.Connections("Запрос из Excel Files1") .Name = "Запрос из Excel Files1" .Description = "" End With End Sub
[/vba]
Не совсем так. Мне нужно, чтобы Вы ЗАНОВО, с самого начала создали нужный запрос. Тогда там будут все данные - и те, которые потом нужно поменять, и те, которые нужно оставить неизменными. Примерный вид макроса такой[vba]
Код
Sub Макрос4() Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False With ActiveWorkbook.Connections("Запрос из Excel Files1").ODBCConnection .BackgroundQuery = True .CommandText = Array( _ "SELECT `'Реальный пример$'`.Boroda, `'Реальный пример$'`.Расходы, `'Реальный пример$'`.`692399`, `'Реальный пример$" _ , _ "'`.F4" & Chr(13) & "" & Chr(10) & "FROM `C:\Мои\Стереть\1231557.xls`.`'Реальный пример$'` `'Реальный пример$'`" _ ) .CommandType = xlCmdSql .Connection = _ "ODBC;DSN=Excel Files;DBQ=C:\Мои\Стереть\1231557.xls;DefaultDir=C:\Мои\Стереть;DriverId=1046;MaxBufferSize=2048;PageTimeout=3;" .RefreshOnFileOpen = False .SavePassword = False .SourceConnectionFile = "" .SourceDataFile = "" .ServerCredentialsMethod = xlCredentialsMethodIntegrated .AlwaysUseConnectionFile = False End With With ActiveWorkbook.Connections("Запрос из Excel Files1") .Name = "Запрос из Excel Files1" .Description = "" End With End Sub
Не совсем так. Мне нужно, чтобы Вы ЗАНОВО, с самого начала создали нужный запрос. Тогда там будут все данные - и те, которые потом нужно поменять, и те, которые нужно оставить неизменными. Примерный вид макроса такой
Здравствуйте Может вот так? [vba]
Код
Sub Снуля() ' ' Снуля Макрос '
' ActiveWorkbook.Worksheets.Add With ActiveSheet.ListObjects.Add(SourceType:=0, Destination:=Range("$A$1")) _ .QueryTable .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .PreserveColumnInfo = True .ListObject.DisplayName = "Таблица_Запрос_из_Excel_Files" .Refresh BackgroundQuery:=False End With ActiveWindow.SmallScroll Down:=-12 Range("B6").Select With ActiveWorkbook.Connections("Запрос из Excel Files").ODBCConnection .BackgroundQuery = True .CommandText = Array( _ "SELECT `БДДС$`.Дата, `БДДС$`.`Денежный фонд`, `БДДС$`.`№ бухг#`, `БДДС$`.`Вид операции`, `БДДС$`.`Форма расчета`, `" _ , _ "БДДС$`.`Конечный контрагент`, `БДДС$`.`Промежуточный контрагент`, `БДДС$`.Назначение, `БДДС$`.Сумма" & Chr(13) & "" & Chr(10) & "FROM `C:\Users" _ , _ "\86\Desktop\123\Информационное поле\БДДС.xlsx`.`БДДС$` `БДДС$`" & Chr(13) & "" & Chr(10) & "WHERE (`БДДС$`.`Вид движения ДС`=?) AND (`БДДС$`.ЦФ" _ , "О=?) AND (`БДДС$`.`Статья бюджета`=?) AND (`БДДС$`.Дата Between ? And ?)") .CommandType = xlCmdSql .Connection = Array(Array( _ "ODBC;DSN=Excel Files;DBQ=C:\Users\86\Desktop\123\Информационное поле\БДДС.xlsx;DefaultDir=C:\Users\86\Desktop\123\Информационное пол" _ ), Array("е;DriverId=1046;MaxBufferSize=2048;PageTimeout=5;")) .RefreshOnFileOpen = False .SavePassword = False .SourceConnectionFile = "" .SourceDataFile = "" .ServerCredentialsMethod = xlCredentialsMethodIntegrated .AlwaysUseConnectionFile = False End With With ActiveWorkbook.Connections("Запрос из Excel Files") .Name = "Запрос из Excel Files" .Description = "" End With ActiveWorkbook.Connections("Запрос из Excel Files").Refresh Range("M1:M3").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With Columns("M:M").ColumnWidth = 11.71 End Sub
Не совсем так. Мне нужно, чтобы Вы ЗАНОВО, с самого начала создали нужный запрос. Тогда там будут все данные - и те, которые потом нужно поменять, и те, которые нужно оставить неизменными. Примерный вид макроса такой
Здравствуйте Может вот так? [vba]
Код
Sub Снуля() ' ' Снуля Макрос '
' ActiveWorkbook.Worksheets.Add With ActiveSheet.ListObjects.Add(SourceType:=0, Destination:=Range("$A$1")) _ .QueryTable .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .PreserveColumnInfo = True .ListObject.DisplayName = "Таблица_Запрос_из_Excel_Files" .Refresh BackgroundQuery:=False End With ActiveWindow.SmallScroll Down:=-12 Range("B6").Select With ActiveWorkbook.Connections("Запрос из Excel Files").ODBCConnection .BackgroundQuery = True .CommandText = Array( _ "SELECT `БДДС$`.Дата, `БДДС$`.`Денежный фонд`, `БДДС$`.`№ бухг#`, `БДДС$`.`Вид операции`, `БДДС$`.`Форма расчета`, `" _ , _ "БДДС$`.`Конечный контрагент`, `БДДС$`.`Промежуточный контрагент`, `БДДС$`.Назначение, `БДДС$`.Сумма" & Chr(13) & "" & Chr(10) & "FROM `C:\Users" _ , _ "\86\Desktop\123\Информационное поле\БДДС.xlsx`.`БДДС$` `БДДС$`" & Chr(13) & "" & Chr(10) & "WHERE (`БДДС$`.`Вид движения ДС`=?) AND (`БДДС$`.ЦФ" _ , "О=?) AND (`БДДС$`.`Статья бюджета`=?) AND (`БДДС$`.Дата Between ? And ?)") .CommandType = xlCmdSql .Connection = Array(Array( _ "ODBC;DSN=Excel Files;DBQ=C:\Users\86\Desktop\123\Информационное поле\БДДС.xlsx;DefaultDir=C:\Users\86\Desktop\123\Информационное пол" _ ), Array("е;DriverId=1046;MaxBufferSize=2048;PageTimeout=5;")) .RefreshOnFileOpen = False .SavePassword = False .SourceConnectionFile = "" .SourceDataFile = "" .ServerCredentialsMethod = xlCredentialsMethodIntegrated .AlwaysUseConnectionFile = False End With With ActiveWorkbook.Connections("Запрос из Excel Files") .Name = "Запрос из Excel Files" .Description = "" End With ActiveWorkbook.Connections("Запрос из Excel Files").Refresh Range("M1:M3").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With Columns("M:M").ColumnWidth = 11.71 End Sub
Подскажите пожалуйста, после выполнения запроса query данные выгружаются в таблицу, но форматирование таблицы меняется, изменяется ширина столбцов, а это очень не нужно, потому что при последующей печати отчет выглядит всегда по разному??
Подскажите пожалуйста, после выполнения запроса query данные выгружаются в таблицу, но форматирование таблицы меняется, изменяется ширина столбцов, а это очень не нужно, потому что при последующей печати отчет выглядит всегда по разному??makc1985