Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите разобраться - Access 2003
 
 автор: bosse-sl   (06.04.2013 в 15:39)   личное сообщение
21 Кб.
 
 

Помогите пожалуйста.

В примере: как показывать файлы с другими расширениями в частности dbf, xls, т.е. с возможностью выбирать расширение файла

  Ответить  
 
 автор: час   (06.04.2013 в 17:28)   личное сообщение
18 Кб.
 
 

Попробуй так.

  Ответить  
 
 автор: bosse-sl   (06.04.2013 в 18:10)   личное сообщение
 
 

Спасибо
Ответ лежал на поверхности.
А я пробовал в функции изменять mdb на xls и не получалось

Большое спасибо за помощь.

  Ответить  
 
 автор: час   (06.04.2013 в 20:15)   личное сообщение
 
 

  Ответить  
 
 автор: bosse-sl   (10.04.2013 в 11:39)   личное сообщение
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 = часть текста(название файла)

названия файлов прилагаю, они приходят в таком виде как в списке

  Ответить  
 
 автор: snipe   (10.04.2013 в 13:17)   личное сообщение
 
 

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

  Ответить  
 
 автор: bosse-sl   (10.04.2013 в 13:48)   личное сообщение
 
 

Спасибо, но ругается на


asd=Replace(replace(replace(fileName,"№","");"Заявка";"")," ","")

  Ответить  
 
 автор: Анатолий (Киев)   (10.04.2013 в 14:54)   личное сообщение
 
 

Замените все точки с запятой на запятую.

  Ответить  
 
 автор: bosse-sl   (10.04.2013 в 15:16)   личное сообщение
 
 

Подскажите как этим пользоваться
Select case left(asd,1)
case "к": ' делаем движение раз
case "р": ' делаем движение два
case "с": ' делаем движение три
ругается на
case else msgbox "Хто вбил не правильное имя файла?"

  Ответить  
 
 автор: Анатолий (Киев)   (10.04.2013 в 16:10)   личное сообщение
 
 

В данном варианте после else надо поставить двоеточие, как разделитель действий.
При стандартном синтаксисе Select case оно не ставится. Т.е.:
Select Case left(asd,1)
case "к"
' делаем движение раз
case "р"
' делаем движение два
case "с"
' делаем движение три
case else
msgbox "Хто вбил не правильное имя файла?"
End Select

ЗЫ. Вы справку принципиально не читаете?

  Ответить  
 
 автор: bosse-sl   (10.04.2013 в 19:20)   личное сообщение
 
 

Огромаднейшее Спасибо всем за помощь.

Извиняйте, чуть-чуть ленивый, и я и интернет


ЗЫ. Вы справку принципиально не читаете?

Полез в справку в МСА он в интернет полез, но ответа не получил.
Раньше не имел с таковым дело, не кому было учить, а учиться не поздно, но время очень поджимает, хочется сделать и работать, книжки по ходу читаю, скоро жена из дому выгонит все время за компьютером

  Ответить  
 
 автор: snipe   (10.04.2013 в 16:14)   личное сообщение
 
 


ругается на
case else msgbox "Хто вбил не правильное имя файла?"



а так

case else
msgbox "Хто вбил не правильное имя файла?"


вместо "делаем движение ......." ставим свой набор операторов
которые будут выполняться в зависимости от Значения в Select Case

обращаю ваше внимание на оператор комментария
можно написать Rem а можно ' (аппостроф)
все что написано после в строке программой игнорируется (пропускается)

  Ответить  
 
 автор: bosse-sl   (10.04.2013 в 19:22)   личное сообщение
 
 

Огромное Спасибо Вам за помощь


обращаю ваше внимание на оператор комментария
можно написать Rem а можно ' (аппостроф)
все что написано после в строке программой игнорируется (пропускается)

Спасибо ужо раньше научили - удобно делать комментарии

  Ответить  
 
 автор: bosse-sl   (10.04.2013 в 19:37)   личное сообщение
 
 

Еще вопрос по 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

  Ответить  
 
 автор: snipe   (11.04.2013 в 07:52)   личное сообщение
 
 

если 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

  Ответить  
 
 автор: Анатолий (Киев)   (11.04.2013 в 10:44)   личное сообщение
 
 

Если это присваивание:
Select case left(asd,1)
case "к": a=10: b=5
case "р": a=10: b=7
case "с": a=12: b=12
case else

  Ответить  
 
 автор: bosse-sl   (17.04.2013 в 17:47)   личное сообщение
55 Кб.
 
 

Огромное спасибо snipe и Вам Анатолий (Киев) за разъяснения.

Прошу помощи еще в одном, приложил пример, на форме fMove есть кнопки
Не могу разобраться в чем ошибка, ругается на синтаксис запроса

  Ответить  
 
 автор: snipe   (17.04.2013 в 18:50)   личное сообщение
 
 

Ошибок 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;"

  Ответить  
 
 автор: bosse-sl   (17.04.2013 в 20:28)   личное сообщение
 
 

Спасибо Вам Сергей.
Кавычки по разному пробовал, но ошибку выдавал, а вот про пробел недосмотрел, , все из-за него

Подскажите как можно реализовать, чтобы при нажатии на кнопку изменялся цвет кнопки и шрифта, а при нажатии на другую тоже происходило с ней, но у всех остальных все восстанавливалось по умолчанию

  Ответить  
 
 автор: snipe   (18.04.2013 в 05:15)   личное сообщение
 
 

У кнопки или переключателя нет свойства цвет кнопки - соответственно изменить его нельзя
варианты выхода из ситуации
1. Использовать ActiveX (мне не попадались)
2. Использовать не кнопку а надпись или простое поле и написать несколько кусков кода
3. Использовать TreeView

Кстати, по собственным наблюдениям, красивая яркая форма изобилующая кучей цветов - красива в первый час работы во все последующие раздражает и утомляет зрение

  Ответить  
 
 автор: bosse-sl   (18.04.2013 в 11:00)   личное сообщение
 
 

Спасибо за совет: но форму не стараюсь сделать пестрой, просто хотел чтобы визуально было видно какая кнопка нажата

И еще вопрос: есть две формы Form1(типа много кнопок) и Form2 как по нажатию кнопки на Form1 открывается Form2, мне нужно чтобы еще и на Form2 некоторые элементы меняли видимость, т.е. свойство Visible,
при нажатии Form1.кнопки1 - Form2.поле1, Form2.кнопка1, а при Form1.кнопка2 - Form2.поле2, Form1.кнопка2

  Ответить  
 
 автор: Дядя Федор   (18.04.2013 в 12:30)   личное сообщение
 
 

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

  Ответить  
 
 автор: bosse-sl   (18.04.2013 в 13:45)   личное сообщение
 
 

Спасибо, но куда это и как


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 ???


В общем помогайте не понял как воевать

  Ответить  
 
 автор: Дядя Федор   (18.04.2013 в 14:46)   личное сообщение
 
 

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

Как-то так.

  Ответить  
 
 автор: snipe   (18.04.2013 в 13:23)   личное сообщение
 
 

Не правильно это

в-первых - количество элементов на форме ограничено (вроде как 999)
во - вторых - большое количество элементов влияет на скорость отображения формы

  Ответить  
 
 автор: bosse-sl   (18.04.2013 в 13:49)   личное сообщение
 
 

Не все так страшно


количество элементов на форме ограничено (вроде как 999)


Да кнопок от силы всего около 11штук

  Ответить  
 
 автор: Дядя Федор   (18.04.2013 в 14:47)   личное сообщение
 
 

Кнопки не так страшны, как, например. поля со списком, ибо последние тянут свои источники данных.

  Ответить  
 
 автор: Анатолий (Киев)   (18.04.2013 в 15:24)   личное сообщение
 
 

На 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 открывается не в режиме диалога.

  Ответить  
 
 автор: bosse-sl   (18.04.2013 в 17:06)   личное сообщение
 
 

Спасибо всем пока все заработало.

  Ответить  
 
 автор: bosse-sl   (18.04.2013 в 17:27)   личное сообщение
10 Кб.
 
 

Опять без Вас не обойтись.

Вроде все замечательно пошло, но наткнулся на следующий подводный камень.
Не может открыть файл grid...xls
Пишет: таблица не имеет предполагаемый формат

Посмотрел через TotalCommander через Lister оказались XML документами, хотя в Excel нормально открывается, что с ним делать?

  Ответить  
 
 автор: Дядя Федор   (19.04.2013 в 07:57)   личное сообщение
 
 

Открыть и сохранить как xls

  Ответить  
 
 автор: bosse-sl   (19.04.2013 в 09:27)   личное сообщение
 
 

А программно с помощью VBA возможно открыть и сохранить без участия пользователя?
Т.е. пользователь нажал Кнопочку добавить, а там уж он открывается и сохраняется и добавляется.

  Ответить  
 
 автор: Анатолий (Киев)   (19.04.2013 в 11:01)   личное сообщение
 
 


Set ExlApp = CreateObject("Excel.Applicatio")
Set WrkBk =  ExlApp.WorkBooks.Open "Путь"
WrkBk.SaveAs "Новый путь", -4143 'xlWorkbookNormal
WrkBk.Close
ExlApp.Quit


"Не может открыть файл grid...xls" - покажите код (вашу БД не смотрел).
Если используете GetObject("Путь"), то замените его на 2 строчки из кода выше.

  Ответить  
 
 автор: snipe   (19.04.2013 в 12:16)   личное сообщение
 
 

там надо сообщения отключить (забыл как - дожились)
иначе ексель ругнется и все остановится
какой-то чудак в xml файле подменил расширение на xls

  Ответить  
 
 автор: bosse-sl   (19.04.2013 в 12:26)   личное сообщение
 
 


какой-то чудак в xml файле подменил расширение на xls


Не могу знать, это так скидывает из базы с интернет страницы.
Переделать чужую базу не имеем возможности, поэтому приходится к ней приспосабливаться

  Ответить  
 
 автор: bosse-sl   (19.04.2013 в 16:28)   личное сообщение
 
 

Почему-то ругается на

Set WrkBk =  ExlApp.WorkBooks.Open "Путь" 

Выделяет красным и усё

  Ответить  
 
 автор: час   (19.04.2013 в 16:31)   личное сообщение
 
 

"Путь" - это так диск называется?
и что пишет?

  Ответить  
 
 автор: Дядя Федор   (19.04.2013 в 16:48)   личное сообщение
 
 

Описания добавить может?*

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

  Ответить  
 
 автор: bosse-sl   (20.04.2013 в 03:06)   личное сообщение
 
 

Сделал

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, чтобы потом данные добавить в свою базу.
Если есть другие варианты - предложите, как реализовать

  Ответить  
 
 автор: snipe   (20.04.2013 в 06:50)   личное сообщение
 
 

то что сделали - молодец
а вот как сделали - .........


все вам говорят

Set WrkBk =  ExlApp.WorkBooks.Open "Путь"


а вы

Set oWbk = oExcel.Workbooks.OpenXML("c:\grid 2.xls")


говорят

WrkBk.SaveAs "c:\folder\n.xls", -4143


а вы игнорируете установочный параметр

не хорошо

тут вся хитрость в том что бы ексель сам преобразовал формат в удобоваримый ему вид, а вы сразу не даете ему это сделать

  Ответить  
 
 автор: bosse-sl   (20.04.2013 в 12:06)   личное сообщение
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"

  Ответить  
 
 автор: bosse-sl   (20.04.2013 в 12:27)   личное сообщение
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

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList