|
21 Кб. |
|
| Помогите пожалуйста.
В примере: как показывать файлы с другими расширениями в частности dbf, xls, т.е. с возможностью выбирать расширение файла | |
|
| |
|
18 Кб. |
|
| Попробуй так. | |
|
| |
|
|
|
| Спасибо
Ответ лежал на поверхности.
А я пробовал в функции изменять mdb на xls и не получалось
Большое спасибо за помощь. | |
|
| |
|
|
1 Кб. |
|
| Помогите написать функцию.
У меня при нажатии кнопки Chang выводится название файла в labTest.Caption
вот собственно код
Private Sub Chang_Click()
Dim s As String
ChDir MyPath
s = CurDir
If right(s, 1) <> "\" Then
s = s & "\"
End If
s = s & Filelist.Value
labTest.Caption = Filelist.Value
labTestNew.Caption
End Sub
Мне нужно выбирать часть текста из названия файла и подставлять в labTestNew.Caption,
чтобы выбрать К или Р или С (хотя бы так)
типа переменная N = часть текста(название файла)
названия файлов прилагаю, они приходят в таком виде как в списке | |
|
| |
|
|
|
| dim asd as string
dim fileName as string 'Имя файла
asd=Replace(replace(replace(fileName,"№","");"Заявка";"")," ","")
Select case left(asd,1)
case "к": ' делаем движение раз
case "р": ' делаем движение два
case "с": ' делаем движение три
case else msgbox "Хто вбил не правильное имя файла?"
end select | |
|
| |
|
|
|
| Спасибо, но ругается на
asd=Replace(replace(replace(fileName,"№","");"Заявка";"")," ","")
|
| |
|
| |
|
|
|
| Замените все точки с запятой на запятую. | |
|
| |
|
|
|
| Подскажите как этим пользоваться
Select case left(asd,1)
case "к": ' делаем движение раз
case "р": ' делаем движение два
case "с": ' делаем движение три
ругается на
case else msgbox "Хто вбил не правильное имя файла?" | |
|
| |
|
|
|
| В данном варианте после else надо поставить двоеточие, как разделитель действий.
При стандартном синтаксисе Select case оно не ставится. Т.е.:
Select Case left(asd,1)
case "к"
' делаем движение раз
case "р"
' делаем движение два
case "с"
' делаем движение три
case else
msgbox "Хто вбил не правильное имя файла?"
End Select
ЗЫ. Вы справку принципиально не читаете? | |
|
| |
|
|
|
| Огромаднейшее Спасибо всем за помощь.
Извиняйте, чуть-чуть ленивый, и я и интернет
ЗЫ. Вы справку принципиально не читаете?
| Полез в справку в МСА он в интернет полез, но ответа не получил.
Раньше не имел с таковым дело, не кому было учить, а учиться не поздно, но время очень поджимает, хочется сделать и работать, книжки по ходу читаю, скоро жена из дому выгонит все время за компьютером | |
|
| |
|
|
|
|
ругается на
case else msgbox "Хто вбил не правильное имя файла?"
|
а так
case else
msgbox "Хто вбил не правильное имя файла?"
вместо "делаем движение ......." ставим свой набор операторов
которые будут выполняться в зависимости от Значения в Select Case
обращаю ваше внимание на оператор комментария
можно написать Rem а можно ' (аппостроф)
все что написано после в строке программой игнорируется (пропускается) | |
|
| |
|
|
|
| Огромное Спасибо Вам за помощь
обращаю ваше внимание на оператор комментария
можно написать Rem а можно ' (аппостроф)
все что написано после в строке программой игнорируется (пропускается)
| Спасибо ужо раньше научили - удобно делать комментарии | |
|
| |
|
|
|
| Еще вопрос по case
подскажите как можно сделать так
Select case left(asd,1)
case "к": a=10 and b=5
case "р": a=10 and b=7
case "с": a=12 and b=12
case else
msgbox "Хто вбил не правильное имя файла?"
end select | |
|
| |
|
|
|
| если a=10 and b=5 - присваивание
то
Select case left(asd,1)
case "к"
a=10
b=5
case "р"
a=10
b=7
case "с"
a=12
b=12
case else
msgbox "Хто вбил не правильное имя файла?"
end select
если это дополнительное условие
то
Select case left(asd,1)
case "к"
if a=10 and b=5 then
.....
....
else
....
....
end if
case "р"
if a=10 and b=7 then
.....
....
else
....
....
end if
case "с"
if a=12 and b=12 then
.....
....
else
....
....
end if
case else
msgbox "Хто вбил не правильное имя файла?"
end select | |
|
| |
|
|
|
| Если это присваивание:
Select case left(asd,1)
case "к": a=10: b=5
case "р": a=10: b=7
case "с": a=12: b=12
case else | |
|
| |
|
55 Кб. |
|
| Огромное спасибо snipe и Вам Анатолий (Киев) за разъяснения.
Прошу помощи еще в одном, приложил пример, на форме fMove есть кнопки
Не могу разобраться в чем ошибка, ругается на синтаксис запроса | |
|
| |
|
|
|
| Ошибок 2
вот ваш текст
strSQL = "SELECT *" & _
"FROM TM" & _
"WHERE (((TM.S7)="HYUN"))" & _
"ORDER BY TM.ID, TM.M10;"
ошибка первая
"WHERE
"ORDER BY
между предыдущим словом и следующим должен пробел
т.е. у вас получается FROM TMWHERE
"HYUN"))"ORDER BY
а должно быть так FROM TM WHERE "HYUN"))" ORDER BY
правильный синтаксис в этом месте
" WHERE
" ORDER BY
ошибка вторая
"HYUN"
в данном случае кавычки играют плохую роль
VBA воспринимает HYUN не как текст а что-то находящееся за текстом
правильно будет так
'HYUN'
ну и весь фрагмент написанный правильно
strSQL = "SELECT * " & _
"FROM TM" & _
" WHERE (((TM.S7)='HYUN'))" & _
" ORDER BY TM.ID, TM.M10;" | |
|
| |
|
|
|
| Спасибо Вам Сергей.
Кавычки по разному пробовал, но ошибку выдавал, а вот про пробел недосмотрел, , все из-за него
Подскажите как можно реализовать, чтобы при нажатии на кнопку изменялся цвет кнопки и шрифта, а при нажатии на другую тоже происходило с ней, но у всех остальных все восстанавливалось по умолчанию | |
|
| |
|
|
|
| У кнопки или переключателя нет свойства цвет кнопки - соответственно изменить его нельзя
варианты выхода из ситуации
1. Использовать ActiveX (мне не попадались)
2. Использовать не кнопку а надпись или простое поле и написать несколько кусков кода
3. Использовать TreeView
Кстати, по собственным наблюдениям, красивая яркая форма изобилующая кучей цветов - красива в первый час работы во все последующие раздражает и утомляет зрение | |
|
| |
|
|
|
| Спасибо за совет: но форму не стараюсь сделать пестрой, просто хотел чтобы визуально было видно какая кнопка нажата
И еще вопрос: есть две формы Form1(типа много кнопок) и Form2 как по нажатию кнопки на Form1 открывается Form2, мне нужно чтобы еще и на Form2 некоторые элементы меняли видимость, т.е. свойство Visible,
при нажатии Form1.кнопки1 - Form2.поле1, Form2.кнопка1, а при Form1.кнопка2 - Form2.поле2, Form1.кнопка2 | |
|
| |
|
|
|
| 1. Вместо цвета кнопки можно использовать цвет текста на кнопке.
2. По "при нажатии Form1.кнопки1 - Form2.поле1, Form2.кнопка1, а при Form1.кнопка2 - Form2.поле2, Form1.кнопка2 ":
Передавайте номер кнопки или признак через openargument.
Dim argum@
'Если Кнопка1
argum = 1
'Если Кнопка2
argum = 2
DoCmd.OpenForm "Form2", , , , , , argum
В форму Form2 на событие открытие:
Select case me.OpenArgs
Case 1:
поле1.visible=true
поле2.visible=false
Case 2:
поле2.visible=true
поле1.visible=false
end select | |
|
| |
|
|
|
| Спасибо, но куда это и как
Dim argum@
'Если Кнопка1
argum = 1
'Если Кнопка2
argum = 2
DoCmd.OpenForm "Form2", , , , , , argum
|
Dim argum@
if Кнопка1.OnClick then argum = 1
if Кнопка2.OnClick then argum = 2
DoCmd.OpenForm "Form2", , , , , , argum ???
|
В общем помогайте не понял как воевать | |
|
| |
|
|
|
| Dim argum@ - в начало модуля формы
Форма 2, как я понимаю, открывается по обеим кнопам, тогда:
- на событие нажатие Кнопка1
argum=1
DoCmd.OpenForm "Form2", , , , , , argum
- на событие нажатие Кнопка2
argum=2
DoCmd.OpenForm "Form2", , , , , , argum
Или, более правильно:
Создать процедуру в модуле
Private Sub OpenForm2
DoCmd.OpenForm "Form2", , , , , , argum
Exit Sub
и
- на событие нажатие Кнопка1
argum=1
OpenForm2
- на событие нажатие Кнопка2
argum=2
OpenForm2
Как-то так. | |
|
| |
|
|
|
| Не правильно это
в-первых - количество элементов на форме ограничено (вроде как 999)
во - вторых - большое количество элементов влияет на скорость отображения формы | |
|
| |
|
|
|
| Не все так страшно
количество элементов на форме ограничено (вроде как 999)
|
Да кнопок от силы всего около 11штук | |
|
| |
|
|
|
| Кнопки не так страшны, как, например. поля со списком, ибо последние тянут свои источники данных. | |
|
| |
|
|
|
| На Click кнопки1:
DoCmd.OpenForm "Form2"
With Forms("Form2")
.поле1.Visible = True
.кнопка1.Visible = True
End With
На Click кнопки2:
DoCmd.OpenForm "Form2"
With Forms("Form2")
.поле2.Visible = True
End With
Это если Form2 открывается не в режиме диалога. | |
|
| |
|
|
|
| Спасибо всем пока все заработало. | |
|
| |
|
10 Кб. |
|
| Опять без Вас не обойтись.
Вроде все замечательно пошло, но наткнулся на следующий подводный камень.
Не может открыть файл grid...xls
Пишет: таблица не имеет предполагаемый формат
Посмотрел через TotalCommander через Lister оказались XML документами, хотя в Excel нормально открывается, что с ним делать? | |
|
| |
|
|
|
| Открыть и сохранить как xls | |
|
| |
|
|
|
| А программно с помощью VBA возможно открыть и сохранить без участия пользователя?
Т.е. пользователь нажал Кнопочку добавить, а там уж он открывается и сохраняется и добавляется. | |
|
| |
|
|
|
|
Set ExlApp = CreateObject("Excel.Applicatio")
Set WrkBk = ExlApp.WorkBooks.Open "Путь"
WrkBk.SaveAs "Новый путь", -4143 'xlWorkbookNormal
WrkBk.Close
ExlApp.Quit
|
"Не может открыть файл grid...xls" - покажите код (вашу БД не смотрел).
Если используете GetObject("Путь"), то замените его на 2 строчки из кода выше. | |
|
| |
|
|
|
| там надо сообщения отключить (забыл как - дожились)
иначе ексель ругнется и все остановится
какой-то чудак в xml файле подменил расширение на xls | |
|
| |
|
|
|
|
какой-то чудак в xml файле подменил расширение на xls
|
Не могу знать, это так скидывает из базы с интернет страницы.
Переделать чужую базу не имеем возможности, поэтому приходится к ней приспосабливаться | |
|
| |
|
|
|
| Почему-то ругается на
Set WrkBk = ExlApp.WorkBooks.Open "Путь"
|
Выделяет красным и усё | |
|
| |
|
|
|
| "Путь" - это так диск называется?
и что пишет? | |
|
| |
|
|
|
| Описания добавить может?*
Dim ExlApp As Object
Dim WrkBk As Object
Set ExlApp = CreateObject("Excel.Application")
Set WrkBk = ExlApp.WorkBooks
WrkBk.Open "c:\folder\n.xml"
WrkBk.SaveAs "c:\folder\n.xls", -4143 'xlWorkbookNormal
WrkBk.Close
ExlApp.Quit | |
|
| |
|
|
|
| Сделал
Dim oExcel As New Excel.Application
oExcel.Visible = True
Dim oWbk As Excel.Workbook
Set oWbk = oExcel.Workbooks.OpenXML("c:\grid 2.xls")
oWbk.SaveAs ("c:\grid55255.xls")
|
Сохраняет все в том же виде как было, только меняется имя файла.
А как сделать чтобы FileFormat = нормальному шаблону Excel
Файл внешне Excel - расширение, в Excel открывается как нормальная таблица, но при сохранении предлагает сохранить в формате xml и если смотреть блокнотом явно видно документ xml.
Вот мне и нужно сохранить его как нормальную книгу Excel, чтобы потом данные добавить в свою базу.
Если есть другие варианты - предложите, как реализовать | |
|
| |
|
|
|
| то что сделали - молодец
а вот как сделали - .........
все вам говорят
Set WrkBk = ExlApp.WorkBooks.Open "Путь"
|
а вы
Set oWbk = oExcel.Workbooks.OpenXML("c:\grid 2.xls")
|
говорят
WrkBk.SaveAs "c:\folder\n.xls", -4143
|
а вы игнорируете установочный параметр
не хорошо
тут вся хитрость в том что бы ексель сам преобразовал формат в удобоваримый ему вид, а вы сразу не даете ему это сделать | |
|
| |
|
6 Кб. |
|
| Простите Сергей, пробовал
Dim ExlApp As Object
Dim WrkBk As Object
Set ExlApp = CreateObject("Excel.Application")
Set WrkBk = ExlApp.WorkBooks.Open "c:\folder\n.xml"
WrkBk.SaveAs "c:\folder\n.xls", -4143 'xlWorkbookNormal
WrkBk.Close
ExlApp.Quit
|
Выделяет красным цветом строчку, сразу при вставке синтаксиса
Set WrkBk = ExlApp.WorkBooks.Open "c:\folder\n.xml" | |
|
| |
|
6 Кб. |
|
| Попробовал
Dim ExlApp As Object
Dim WrkBk As Object
Set ExlApp = CreateObject("Excel.Application")
Set WrkBk = ExlApp.Workbooks
WrkBk.Open "c:\grid.xls"
WrkBk.SaveAs "c:\grid555.xls", -4143
WrkBk.Close
ExlApp.Quit
|
Теперь при запуске и нажатии на кнопку выдает ошибку: Run-time error '438': Object doesn't support this property or metod
И предлагает отладку - выделяет строку WrkBk.SaveAs "c:\grid555.xls", -4143 | |
|
| |