powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с макросом
25 сообщений из 59, страница 2 из 3
Помогите с макросом
    #39319271
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любая функция имеет аргументы. В Вашем случае аргументами будут имена таблиц и в дальнейшем используя амперсанд (&) собирайте строку SQL. Типа:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Function XXX1(arg1 as string,arg2 as string) 
Dim StrSQL AS String
StrSQL= "DELETE " & arg1 & ".*" _
& "FROM " & arg2 & " LEFT JOIN......"
DoCmd.RunSQL StrSQL
End Function
'Вызов функции:
call XXX1("NameTbl1","NameTbl2")

Вобщем читайте HELP про функции
...
Рейтинг: 0 / 0
Помогите с макросом
    #39319272
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку: не потеряйте пробелы внутри строки-самое лучшее распечатать её в окно отладки и проверить
...
Рейтинг: 0 / 0
Помогите с макросом
    #39327176
SunGirl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.Как можно создать запрос или макрокоманду в базе данных Асcess на удаление внешнего файла.К примеру,xls-файла,расположенного на диске с.
...
Рейтинг: 0 / 0
Помогите с макросом
    #39327198
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SunGirl, вот тебе выборка, смотри там kill
...
Рейтинг: 0 / 0
Помогите с макросом
    #39367931
Андрей Гродно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikolay_magagin,

Ребята правильно пишут, что пора переходить на VBA.
Но, отвечая на Ваш вопрос, сообщаю, что поможет макрокоманда "ЗапускЗапросаSQL".
Эта макрокоманда считается потенциально опасной, поэтому не забудьте активировать команду на ленте "Показать все действия".
...
Рейтинг: 0 / 0
Помогите с макросом
    #39393987
nikolay_magagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Не могли бы подсказать, как сделать , чтобы при запуске "Wyrazeniye_1", в строковом выражении "Wyrazeniye_1" поочередно менялись и запускались значения "В", "С".


Function G_AAC_B_mod()

Dim Wyrazeniye_1 As String

X = "A_AAA"
Z = "G_AAC"

B = Z & "_B"
C = Z & "_C"

Y = C
Y = B

Wyrazeniye_1 = "INSERT INTO [" & X & "_B-1] ( [" & X & "_B-KO] )" _
& "SELECT [1_" & Y & "].[" & Y & "-KO]" _
& "FROM [" & Z & "^1] RIGHT JOIN 1_" & Y & " ON [" & Z & "^1].[" & Y & "^KRx4] = [1_" & Y & "].[" & Y & "-KRx4]" _
& "WHERE (((IIf([" & Y & "^SDSx4S] Like [" & Y & "-SDSx4],2,1))=1));"

DoCmd.RunSQL Wyrazeniye_1


End Function
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394009
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikolay_magagin,

при таком накрученном исполнении -- обязательно вставила бы debug.print

Код: sql
1.
2.
3.
4.
5.
6.
INSERT INTO [A_AAA_B-1] ( [A_AAA_B-KO] )
SELECT [1_G_AAC_B].[G_AAC_B-KO]
 FROM [G_AAC^1]
 RIGHT JOIN 1_G_AAC_B
  ON [G_AAC^1].[G_AAC_B^KRx4] = [1_G_AAC_B].[G_AAC_B-KRx4]
 WHERE (((IIf([G_AAC_B^SDSx4S] Like [G_AAC_B-SDSx4],2,1))=1))
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394019
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikolay_magagin,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Function G_AAC_B_mod()

 Dim Wyrazeniye_1 As String, _
     i As Byte

 X = "A_AAA"
 Z = "G_AAC"

 For i = 1 To 2
  Y = Z & Choose(i, "_B", "_C")
  Wyrazeniye_1 = "INSERT INTO [" & X & "_B-1] ( [" & X & "_B-KO] )" & _
                 "SELECT [1_" & Y & "].[" & Y & "-KO]" & _
                 "FROM [" & Z & "^1] RIGHT JOIN 1_" & Y & " ON [" & Z & "^1].[" & Y & "^KRx4] = [1_" & Y & "].[" & Y & "-KRx4]" & _
                 "WHERE (((IIf([" & Y & "^SDSx4S] Like [" & Y & "-SDSx4],2,1))=1));"
  DoCmd.RunSQL Wyrazeniye_1
 Next

End Function 
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394040
nikolay_magagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо работает. Хотел бы спросить почему заработало когда удалил "i As Byte".
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394055
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikolay_magagin,

Небось ни запятой, ни символа продолжения не было.
Вы, я смотрю, убежденный противник всяких архитектурных излишеств, типа Option Explicit.
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394056
nikolay_magagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да я бы и рад. Скопировал, то, что вы дали. Заработало только после удаления. Вот и спросил - почему.
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394064
nikolay_magagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если можно, ответьте еще на один вопрос. Добавил "Wyrazeniye_2". Правильно ли я понял, что вначале выполняться "Wyrazeniye_1" и "Wyrazeniye_2" с Y = Z & "_B", а затем Y = Z & "_С".

Function G_AAC_B_mod()

Dim Wyrazeniye_1 As String

X = "A_AAA"
Z = "G_AAC"

For i = 1 To 2

Y = Z & Choose(i, "_B", "_C")


Wyrazeniye_1 = "INSERT INTO [" & X & "_B-1] ( [" & X & "_B-KO] )" _
& "SELECT [1_" & Y & "].[" & Y & "-KO]" _
& "FROM [" & Z & "^1] RIGHT JOIN 1_" & Y & " ON [" & Z & "^1].[" & Y & "^KRx4] = [1_" & Y & "].[" & Y & "-KRx4]" _
& "WHERE (((IIf([" & Y & "^SDSx4S] Like [" & Y & "-SDSx4],2,1))=1));"

Wyrazeniye_2 = "DELETE [A_AAA_B-1].*" _
& "FROM [A_AAA_B-1];"


DoCmd.RunSQL Wyrazeniye_1

DoCmd.RunSQL Wyrazeniye_2

Next

End Function
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394066
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikolay_magagin,

Тегами пользуйтесь, пожалуйста.
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394068
nikolay_magagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что это?
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394069
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Средства оформления сообщения.
Чтобы каши не было.
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394075
nikolay_magagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извини. Что, это?
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394080
nikolay_magaginИзвини. Что, это?Форумный отвечатель - это как шофер. Очень скоро вера в собственный опыт перерастает в уверенность в непогрешимости и превосходство над соседями и обстоятельствами, и он решает, что все вокруг него круглые идиоты. На дороге это обычно кончается аварией, а на форуме можно безнаказанно отвечать с вершин своего безграничного опыта, вплоть до хамства. Это обыденность.
"архитектурные излишества, типа Option Explicit" - означают соответствующую запись в начале каждого модуля. А еще лучше - в редакторе модуля отркываешь меню Tools-Options (Сервис-Параметры) и ставишь галку Requere Variable Declaration (Требовать объявления переменных). Спасет от многих подобных ошибок.
"Средства оформления сообщения. Чтобы каши не было." Вот здесь http://www.sql.ru/faq/faq_topic.aspx?fid=202 подробности
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394081
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуйста.
Вот здесь все подробно описано.
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394087
nikolay_magagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверка
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
Function G_AAC_B_mod()

Dim Formula_1 As String
    
    X = "A_AAA"
    Z = "G_AAC"
    
 For i = 1 To 2
 
 Y = Z & Choose(i, "_B", "_C")
 
  
     Formula_1 = "INSERT INTO [" & X & "_B-1] ( [" & X & "_B-KO] )" _
   & "SELECT [1_" & Y & "].[" & Y & "-KO]" _
& "FROM [" & Z & "^1] RIGHT JOIN 1_" & Y & " ON [" & Z & "^1].[" & Y & "^KRx4] = [1_" & Y & "].[" & Y & "-KRx4]" _
& "WHERE (((IIf([" & Y & "^SDSx4S] Like [" & Y & "-SDSx4],2,1))=1));"
      
     Formula_2 = "DELETE [" & X & "_B-1].*" _
& "FROM [" & X & "_B-1];"
  
  Formula_3 = "INSERT INTO 1_" & Y & "( [" & Y & "-S1], [" & Y & "-S2], [" & Y & "-S3], [" & Y & "-S4] )" _
& "SELECT [" & Z & "^1].[" & Y & "^SDS1], [" & Z & "^1].[" & Y & "^SDS2], [" & Z & "^1].[" & Y & "^SDS3], [" & Z & "^1].[" & Y & "^SDS4]" _
& "FROM [" & Z & "^1] LEFT JOIN 1_" & Y & " ON [" & Z & "^1].[" & Y & "^SDSx4S] = [1_" & Y & "].[" & Y & "-SDSx4]" _
& "WHERE (((IIf([" & Y & "^SDSx4S] Like [" & Y & "-SDSx4], 2, 1)) = 1))" _
& "GROUP BY [" & Z & "^1].[" & Y & "^SDS1], [" & Z & "^1].[" & Y & "^SDS2], [" & Z & "^1].[" & Y & "^SDS3], [" & Z & "^1].[" & Y & "^SDS4];"
  
 
  DoCmd.RunSQL Formula_1
  
  DoCmd.RunSQL Formula_2
  
  DoCmd.RunSQL Formula_3
  
  
 Next

End Function
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394088
nikolay_magagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, понял. Больше не повторится.
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394091
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikolay_magagin....Скопировал, то, что вы дали. Заработало только после удаления...Этого быть не может, абсолютно точно.
Значит, исказили то, что скопировали.
Сейчас специально проверила - все работает.
Только вместо выполнения запроса выполняется MsgBox Wyrazeniye_1.
Ведь запросов-то этих у меня нет.
Все блестяще выполняется.
Где-то Вы напортачили при переносе.)))
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394093
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikolay_magagin,

Проверим искусство копирования.)))
Скопируйте снова, как делали, и покажите сообщение об ошибке.
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394100
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikolay_magaginПроверка
Код: sql
1.
2.

И еще совет.
Проверки лучше выполнять в специальном форуме Тест.
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394119
nikolay_magagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сообщение - "Compile error: Statement invalid outside Type block".
Удаляю "i As Byte" - нормально.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
[color=yellow]Function G_AAC_B_mod()[/color]

Dim Formula_1 As String
  [color=blue] i As Byte[/color]
    X = "A_AAA_B"
    Z = "G_AAC"
     For i = 1 To 2
  Y = Z & Choose(i, "_B", "_C")
      Formula_1 = "INSERT INTO [" & X & "-1] ( [" & X & "-KO] )" _
   & "SELECT [1_" & Y & "].[" & Y & "-KO]" _
& "FROM [" & Z & "^1] RIGHT JOIN 1_" & Y & " ON [" & Z & "^1].[" & Y & "^KRx4] = [1_" & Y & "].[" & Y & "-KRx4]" _
& "WHERE (((IIf([" & Y & "^SDSx4S] Like [" & Y & "-SDSx4],2,1))=1));"
            Formula_2 = "DELETE [1_" & Y & "].*" _
& "FROM 1_" & Y & " INNER JOIN [" & X & "-1] ON [1_" & Y & "].[" & Y & "-KO] = [" & X & "-1].[" & X & "-KO];"
           Formula_3 = "DELETE [" & X & "-1].*" _
& "FROM [" & X & "-1];"
 
  DoCmd.RunSQL Formula_1
    DoCmd.RunSQL Formula_2
    DoCmd.RunSQL Formula_3
  
  
 Next

End Function
    
   
  Sub AAS1()

End Sub
...
Рейтинг: 0 / 0
Помогите с макросом
    #39394124
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikolay_magagin,

Как я и написала сразу 20158694 - ни запятой, ни символа продолжения.
А говорите, "скопировали"...
...
Рейтинг: 0 / 0
25 сообщений из 59, страница 2 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с макросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]