Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Загрузка файла через Excel в БД Access в поле "Вложения"
 
Привет от собратьев по разуму.
Вопрос был задан там тоже и ответ я написал тоже там:)
https://www.sql.ru/forum/1333449/zagruzka-fayla-cherez-excel-v-bd-access-v-pole-vlozheniya
Запись отфильтрованных значений массива в другой массив, vba,arrays
 
Андрей, спасибо большое!

Я накололся и немного недожал счетчик, вместо вашего:
Код
If arr(i, 3) <> 0 Then            
For x = 1 To 3
 arr2(lr, x) = arr(i, x)
    Next
    lr = lr + 1
         End If
Я его пытался крутить тут:)
Код
If arr(i, 3) <> 0 Then            
For x = 1 To 3
 arr2(lr, x) = arr(i, x)
 lr = lr + 1
          Next
         End If

Эх, два часа убил . Точно, у нас же надо на уровне строки прибавлять, не заметил сразу свой косяк. Еще раз спасибо!
Запись отфильтрованных значений массива в другой массив, vba,arrays
 
То что циклом понятно)

1) При нажатии на кнопку в первый массив с размерностью arr(1 to 9,1 to 3) записываются данные из таблички с активного листа.
2) Создается второй целевой массивnew_array(1 to 4,1 to 3) куда надо поместить отфильтрованные строки из первого
А вот как циклом зафигачить из первого во второй ,что то не выходит, глаз замылился.
Размеры второго я сознательно уже подогнал под количество строк с учетом выборки. Чтобы сэкономить время на решение.
Вот тестовый код на чем остановился
Код
Private Sub CommandButton1_Click()
Dim arr(1 To 9, 1 To 3)
'заполняем первый массив. 1 мера - строки, 2ая - стобцы
For i = LBound(arr, 1) To UBound(arr, 1)
For j = LBound(arr, 2) To UBound(arr, 2)
arr(i, j) = Cells(i, j)
Next
Next
'подготавливаем второй  массив arr_report. 1 мера - строки, 2ая - стобцы
Dim arr_report() 
ReDim arr_report(1 To 4, 1 To 3)
'здесь нужно циклом обойти первый и добавить во второй массив уникальные строки по которым Код<>0


End Sub

Файл также приложил, при нажатии на кнопку должен заполняться массив   new_array(1 to 4,1 to 3) отфильтрованными значениями из первого arr(1 to 9,1 to 3)
Прошу помочь.
Изменено: Лалыч - 11.01.2021 15:25:51
Запись отфильтрованных значений массива в другой массив, vba,arrays
 
Здравствуйте, возник небольшой вопрос добавления отфильтрованных значений из одного двумерного массива, в другой .
Есть двумерный массив VBA , который содержит в себе небольшую табличку (он у меня уже заполнен и содержит данные):
ТоварЦенаКод
яблоко25код1
яблоко00
яблоко00
дыня69код1
дыня00
ананас2код3
яблоко00
ананас00
Необходимо добавить в новый 2 массив new_array из первого arr(1 to 9,1 to 3) только те строки, по которым столбец Код не равен 0.
Размерность нового массива new_array(1 to 4,1 to 3) соответственно.

Подскажите как отфильтровать первый массив и добавить во второй 4 строки (это те строки по которым значение столбца Код <>0 включая первую строку заголовок)
Цветной API-прямоугольник на UserForm. Создаем progressbar
 
Цитата
AndyGrouve написал:
Здравствуйте.Используя API-функцию Rectangle из библиотеки "gdi32", рисую на пользовательской форме прямоугольник. Прямоугольник выводится с белой заливкой. Т.к. нужна заливка другого цвета, ничего личше чем по-пиксельную закраску (функция SetPixel)
Вы в конечном итоге случайно не хотите сделать что то похожее на прогресс бар?  где по мере исполнения задачи увеличивается закрашенная шкала/прогресс выполнения кода?
Если так, то можно абстаргироваться от API функций и реализовать при помощи встроенного контрола типа label на форме.
Проигрывание аудио из интернета VBA
 
Спасибо!)  
Проигрывание аудио из интернета VBA
 
Уважаемые единомышленники, всем привет!
Подскажите пожалуйста, есть ли возможность в VBA (рассматриваю любые библиотеки) проигрывать потоковое аудио из интернета.
К примеру сослаться на адрес аудиозаписи в ВК, или еще каком ресурсе.
Excel и Access могут облегчить друг другу жизнь?, как можно совмещать их способности
 
Цитата
JeyCi написал:
вы бы нормализовали вашу бд в Access...
Уже столько копий сломано на эту тему и споров пройдено. Помимо нормализации как таковой, есть еще так называемый уровень нормализации. То есть либо ты идешь с позиции создания единого универсального справочника и комплектуешь все по возможности в одну таблицу , либо каждый бизнес элемент (блок) важный для раздельной аналитики и обработки выделяешь в отдельную сущность. Это значительно ускоряет работу запросов и упрощает восприятие архитектуры СУБД для последователей.
Вы просто не шарите о чем говорите, потому что большого практического опыта в создании баз данных у вас нет)
Excel и Access могут облегчить друг другу жизнь?, как можно совмещать их способности
 
Да, конечно, для нормальной скорости и защиты данных ,сами базы только на SQL . Акс только как клиент, да и эксель тоже. Вопрос как лучше экселю работать с SQL больше философский. Можно в экселе писать запросы к серверу, можно с сервера выгружать в эксель нарезанные данные. Тут дело вкуса. Можно запилить отдельную статью опросник, но в этом направлении проблем нет в общем то.
Excel и Access могут облегчить друг другу жизнь?, как можно совмещать их способности
 
Если говорим про первую, то обычная разделенная, без посадки на сервер. Попросили сделать в классическом варианте, чтобы потом можно было в случае чего подпиливать силами местных умников. Серверная часть на общем файловом ресурсе. Но это все сознательно просили, чтобы было понятно и знакомо. И на русском еще попросили названия системных полей в таблицах. Что просили то и сделал.
С нормализацией данных и индексами неплохо заморочился, поэтому вес серверной части был небольшой, около 12мб. (с экспортированной статистикой уже, за 2 прошлых года.) Проект не очень большой , но вышел крепенько :


Остальные - на MS SQL и MySQL. Аксесс как клиент только (в случае MySQL клиент ч/з MySQL odbc driver.)  
Изменено: Лалыч - 01.10.2019 18:44:21
Excel и Access могут облегчить друг другу жизнь?, как можно совмещать их способности
 
Цитата
Юрий М написал:
Может пора что-то в консерватории поменять? (с) М. Жванецкий
Консерваторов  :D

Цитата
БМВ написал:
что VBA, Access -это днище
Ктожь говорит, что днище, около 3 лет назад написал СУБД  в Access для РАМН, для учета показателей при лечении одного из самых жестких типов рака.  Чтобы постоянно не менять структуру данных аксесса из за появляющихся новых отчетов  (просили в Excel) создал некий шаблонизатор в Excel который принимал в себя и выводил на листе результат выборки запроса SQL с необходимыми удобными сгруппированными данными для последующей генерации отчетов/диаграмм  (Экспорт в Excel из аксесса выполняется гораздо быстрей ,чем линк таблиц/вьюх в Excel из  access).  

Потом что еще по теме топика (связка access+excel) - какие практические применения. Я по роду деятельности отношусь к работникам сферы закупок , логистики, supply chain.. Непаханное поле для любителей excel и access (планирование отгрузок, расчет бюджета, аналитика эффективности поставок, ABC,XYZ анализ, моделирование стрессовых ситуаций в бизнесе, антикризисные меры и способы решения данных ситуаций. ) Все опорные модели ,с последующей защитой естественно формировались в Excel. Пульт управления экселем был реализован в аксессе.  Просто из за того что, GUI в аксессе получше.

Далее - связка Excel и Access неплохо зарекомендовала себя при генерации полного комплекта товарно сопроводительных документов для таможни и склада . Пользователи вели полный учет данных в аксессе (досталось от предшественников) , удалось малой кровью создать шаблоны и описать все вариации импортной и экспортной документации ,в зависимости от условий поставки(инкотермс)  и генерацию всего комплекта нажатием на одну кнопку. При предыдущем способе изготовления документов (45-50 минут) удалось сократить время до 1 минуты. Только на подпись оставалось отнести.

И одно из самых то главных откровений по теме топика )) Именно эта связка (а наверное просто любовь к программированию и структуризации информации), проработка бизнес модели, с последующей реализацией в и возможность алгоритмизировать и структурировать информацию в разрезе своих бизнес процессов и выдача более точных прогнозов итд итп привела к хорошему карьерному росту со всеми последующими плюшками.)
Excel и Access могут облегчить друг другу жизнь?, как можно совмещать их способности
 
Ну вот как обычно все не так поняли.
Excel и Access могут облегчить друг другу жизнь?, как можно совмещать их способности
 
По теме топика, чтобы не потерялась нить) С VBA Access ,Excel активно начал взаимодействовать с 2009 года, с тех пор компьютер не знал покоя :D  Позже захотелось большего, изучил MySQL  (так как хотелось использовать нормальную скорость и взрослую защиту данных для клиента (Excel/Access) - на уровне привилегий пользователей, плюс нормальное задание логики бизнес процессов на стороне сервера.)
Потом захотелось не привязываться к десктопному приложению и повторить функционал в web, чтобы проекты работали отовсюду через браузер, без привязки к драйверам, библиотекам . Пришлось поботанить PHP+JS+HTML.
Далее захотелось научится писать клиент серверные приложения на каком либо взрослом языке. Решил попробовать себя в роли Андроид разработчика . Пошел на курсы по JAVA (Котлин решил не трогать). После Java стало понятно, что VB,VBA Excel/Access это детские фантазии))
Если вы программист по основному роду деятельности (я кстати никакого отношения не имею к программированию по своему функционалу и должности), изучать VBA Excel/Access это еще та могилка. Excel/Access сам по себе является могилкой для программиста.
Офисный кодинг позволит слепить по быстрому заплатку в бизнес логике предприятия, помочь с красивыми отчетами, группировкой информации, накидать свою базку для решения проблем на уровне небольшого отдела компании, но не более. И если вы вдруг захотите позиционироваться как программист VBA и получать к примеру условно среднюю зарплату кодера со стажем 4-5лет - 125-130 т.р.  , то любителей VBA ждет обломинго. Средний показатель зп на рынке по VBA - 55-60 т.р.

С дополнениями функционала в виде эникейщика. Писать отдельно проекты в VBA на заказ (курсовые,лабы, контрольные в расчет не берем.) тоже занятие так себе. Студентам вы сможете конечно помочь за небольшую мзду, и сделав за неделю заказов этак тыщ на 15 наверняка тоже будете чувствовать себя героем, но это тупик, так как делая контрольные и лабы вы не развиваетесь и не работаете над реально серьезным проектом, который требует полной отдачи и соответственно нормально оплачивается. Нет также в чистом Excel /Access такого понятия как продукт, который можно сделать и продавать множество раз (ну к примеру за год на одном созданном проекте заработать 2-3 млн рублей.) Офисный кодинг не для этого.

Так что тем кто хочет реально развиваться в области кодинга с соотвествующей компенсацией своих усилий - пора расчехлять талмуды с C++,или Java, или C#, там больше движухи, больше напрягается мозг и больше плОтют. Там реально поймете для чего нужен ООП и что это такое на самом деле.  
Лучший парсер VBA-Json (ваше мнение)
 
Большое спасибо всем за ответы!

Цитата
JeyCi написал:
а самый простой - это Power Query !! без vba ... ничто с ним в сравнение не идёт...
Power Query безусловно волшебная палочка, но к сожалению (очень и очень большому) в MS Access её не завезли. Хоть сам собирай народ и выходи на митинг около главного здания Майкрософт,с просьбой включить PQ в состав MS Access ))


Цитата
sokol92 написал:
Мы используем для разбора JSON собственный скорострельный потоковый парсер (для посимвольного анализа JSON применяя фрагмент кода из процитированной ссылки).
Есть даже отдельные сервера , которые только и заточены под это)

В общем еще раз огромное спасибо за участие в обсуждении, буду экспериментировать, материала собрал много.
Лучший парсер VBA-Json (ваше мнение)
 
Да, спасибо,видал) Это самая большая и проработанная библиотека в плане парсинга json. Там есть все возможные сценарии и возможность создать любой шаблон. Но она при определенных условиях подлипает и замедляет работу приложения (Что в экселе,что в аксессе. В Экселе при большом количестве записей начинает тупить безбожно. В аксессе ситуация по скорости процентов на 25-30 получше, но тоже не нравиться.) Возможно удастся немного подпилить, работаю над этим)

Во время поисков библиотек параллельно нашел самый краткий и простой формат обработки json. Вот ,могу поделиться, для экселя как раз идеально подходит. На русскоязычных сайтах не нашел, на одном зарубежном . Все гениальное просто, всего семь строк самого парсера. Он не обрабатывает по умолчанию проблемные значения в Json, но приятен с позиции восприятия программиста VBA . В принципе я его подточил немного, вот код:
Код
Private Sub CommandButton1_Click()
' ВЫВОДИТ JSON В ЯЧЕЙКИ EXCEL
Dim str As Variant, N&, R&
Dim xmlhttp As New MSXML2.XMLHTTP60 ' не забудьте подключить в библиотеках ' tools -> references
Dim URL As String
Dim user As String
Dim password As String

user = Cells(6, "H") 'ячейка для ввода логина
password = Cells(7, "H") 'ячейка для ввода пароля
URL = "http://localhost/json_test/simpleJson.php"  ' путь до страницы ,где выводится json

If user = "" Or password = "" Then
MsgBox "Заполните поля логин и пароль"
Exit Sub
End If

argumentString = "user=" & user & "&password=" & password

        xmlhttp.Open "POST", URL, False ' открываем соединение
        xmlhttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded" '
        xmlhttp.send argumentString
        'MsgBox xmlhttp.responseText, vbInformation, "ЭТО ВЫВОД СЫРОГО JSON НА ЭКРАН! НАЖМИТЕ ОК.
  ' НАЧАЛО ПАРСЕРА
        str = Split(xmlhttp.responseText, "{""client_id"":") 'client_id - имя ключевого поля из таблицы, первое, с чего начинается само тело Json
    N = UBound(str)
    For R = 1 To N
        Cells(R + 1, 1) = Split(Split(str(R), "company_name"":""")(1), """")(0) ' R+1 - выгрузка в ячейки начинается со второй строки
        Cells(R + 1, 2) = Split(Split(str(R), "telefone"":""")(1), """")(0)
        Cells(R + 1, 3) = Split(Split(str(R), "e_mail"":""")(1), """")(0)
    Next R
    ' КОНЕЦ ПАРСЕРА
    
    
Exit Sub
10: MsgBox Err.Description
End Sub


И написал под него небольшой тестовый код PHP на стороне веб сервера (выгрузка происходит из небольшой тестовой таблицы в базе на MySQL):

Код
<?php

if (empty($_POST['user']) || empty($_POST['password']))  
{
echo "Заполните поля логин и пароль!";  
} 
else 
{
    $log= $_POST['user'];
    $pass=$_POST['password'];
    
   try {
     $dbh = new PDO('mysql:host=localhost;charset=utf8;dbname=test_db', $log, $pass);
     $response = $dbh->query("SELECT * FROM tbl_clients")->fetchAll(PDO::FETCH_ASSOC);
    
    foreach ($response as $row)
        {
        print json_encode($row,JSON_UNESCAPED_UNICODE);  
        }
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage();
   // die();
}

  }
?>
Изменено: Лалыч - 20.09.2019 17:46:31
Лучший парсер VBA-Json (ваше мнение)
 
sokol92,

Отлично, спасибо! Сейчас потестим и ваш вариант :idea:
Но ваш пример это функция encode , то есть вывода данных к примеру с листа экселя и передачу его к примеру на сервер.)

Парсер это наоборот-когда вы декодируете сообщение , получаемое из определенного источника (в частности с сайта, или текстового источника.)
Изменено: Лалыч - 20.09.2019 16:08:40
Лучший парсер VBA-Json (ваше мнение)
 
Да, в этот плане попроще, выводимый Json имеет четкую структуру, порядок и количество выводимых полей не меняется. Но присутствуют запрещенные /нерекомендуемые значки в самих значениях: "  '  // / \ {}} И их как то надо обработать.
C VBA уже достаточно давно ,больше 10 лет,проблем нет, прошу подсказать самый крутой по вашему мнению парсер VBA -> Json (Можно в виде класса, функции, чего угодно) Ключевое требование, чтобы мог справляться с нестандартными данными в значениях выводимых полей в Json.
Лучший парсер VBA-Json (ваше мнение)
 
Приветствую всех! Подскажите пожалуйста, какой по вашему мнению лучший парсер в связке VBA-Json?

Есть одно условие, с которым мне придется смириться к сожалению, не от меня зависит- в ответах Json время от времени будут попадаться в полях (в значениях полей ,выгружаемых в Json) символы типа таких: "  '  // / \ {}} .  и прочие кракозябры.
Автоматическое добавление даты в определённую ячейку через VBA
 
Ок, спасибо, я с вашим интерфейсом сайта просто пока не освоился.
Изменено: Сергей Лалов - 26.07.2013 12:21:25
Автоматическое добавление даты в определённую ячейку через VBA
 
Так, вот совсем упростил:

Код
Private Sub Worksheet_Change(ByVal Target As Range)

Dim GetDateTime
' (+14400 s)
Dim t#
With CreateObject("MSXML2.XMLHTTP" ;) 
.Open "sntp", "http://www.direct-time.ru/track.php?id=time_utc", 0
.send
t = .responseText / 1000
GetDateTime = DateAdd("s", t + 14400, #1/1/1970#)
End With

If Target(1, 1).Column = 1 Then Target(1, 2).Value = GetDateTime 
'где Target(1, 1).Column = 1 изменение ловится в первом столбце
' где Target(1, 2).Value = GetDateTime значение московского времени вставляется во второй
End Sub

Образец приложил
Изменено: Сергей Лалов - 26.07.2013 11:14:25
Автоматическое добавление даты в определённую ячейку через VBA
 
Код
Private Sub Worksheet_Change(ByVal Target As Range) 
' а теперь совместим вставку данных московского текущего времени и процедуру изменения ячейки:
 
 Dim GetDateTime
 'Москва (+14400 s)
 Dim t#
 With CreateObject("MSXML2.XMLHTTP" ;)  
 .Open "sntp", "http://www.direct-time.ru/track.php?id=time_utc", 0
 .send
 t = .responseText / 1000
 GetDateTime= DateAdd("s", t + 14400, #1/1/1970#)
 End With

 
 For Each cell in Target 'проходим по всем измененным ячейкам
 If Not Intersect(cell, Range("A2:N1000" ;)  Is Nothing Then 
 With Range("O" & cell.row)
 .Value = GetDateTime
 .EntireColumn.AutoFit 
 End With
 End If
 Next cell
End Sub


Вот и все, надеюсь ответ на вопрос дал.

P.S. Привет всем с сайта про MS Access  :)
Изменено: Сергей Лалов - 25.07.2013 21:48:12
Автоматическое добавление даты в определённую ячейку через VBA
 
Получил вопрос от автора топика , но уже Вконтакте.

Вопрос заключается на самом деле в следующем- Необходимо при изменении значения ячейки поля (к примеру А1) выводить в соседней ячейке (к примеру B1 ) текущее значение времени в формате Now() , но обязательно всегда чтобы отображалось Московское Время, независимо от региона ввода - Нью Йорк это будет, Новосибирск или Пекин.
Проблему решил интересным способом, на изменение значения ячейки можно повесить следующую процедуру:

Код
Public Function GetDateTime()
 'Москва (+14400 s)
 Dim t#
 With CreateObject("MSXML2.XMLHTTP" ;) 
 .Open "sntp", "http://www.direct-time.ru/track.php?id=time_utc", 0
 .send
 t = .responseText / 1000
 GetDateTime = DateAdd("s", t + 14400, #1/1/1970#)
 End With
End Function




При изменении ячейки можно обращаться к данной процедуре в качестве вставляемого параметра. Данный код обращается к сайту эталону и выгребает оттуда данные по московскому времени с точностью до секунды.
словить событие dblclick по вертикальному диапазону ячеек одного столбца.
 
Ребят, большое спасибо!!! Выручили. Ларчик просто открывался оказывается. А если этот диапазон постоянно будет прирастать вниз новыми значениями? То есть со временем количество строк постоянно будет увеличиваться динамически. Как задать,чтобы нижний предел конечной строки был плавающим и к примеру не зависел от A10? Циклом надо предварительно прогонять весь диапазон и определять границы и только потом передавать в качестве переменной в выражение ("A2:переменная_моя")? Прошу заранее извинить за ламерские вопросы, ибо подкован в aсcess vba , с экселевскими кузявностями не так часто сталкиваюсь). Тут в принципе облегченные условия. можно сказать что поле "значение" по определению не может быть пустым (где то незаполненным), так как источником значений данного поля служит поле типа PRYMARY KEY и  AUTO_INCREMENT c MS SQL server.
словить событие dblclick по вертикальному диапазону ячеек одного столбца.
 
Привет всем!  
Возник немного нестандартный вопрос по использованию EXCEL+VBA  
Представьте себе вертикальный диапазон поля "ЗНАЧЕНИЕ" в рамках одного столбца:  
ЗНАЧЕНИЕ  
23  
65  
45  
12  
78  
96  
54  
14  
96  
12  
87  
 
Подскажите пожалуйста, как можно организовать вывод сообщения в формате msgbox()значения текущей  
ячейки данного столбца при двойном нажатии левой кнопки мыши на любом значении в данном столбце.  
 
В экселе нет таких понятий как рекордсет и текущая запись формы как понимаю. Как можно в нем зацепиться зацепится и вытащить на dblclick значение текущей ячейки?
Убрать лишние символы
 
...  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
Убрать лишние символы
 
Вот он
Убрать лишние символы
 
Уважаемые коллеги, здравствуйте!  
Возник вопрос по поводу приведения данных в нормальный вид.  
Представьте, что есть список, который я получаю со склада. Это например столбец такого вида:  
ПРИБЫТИЕ  
02,01,11,  
02,01,11,  
03,01,11,  
03,01,11,  
03,01,11,  
03,01,11,  
03,01,11,  
04,01,11,  
Обратите внимание, что склад неправильно пишет дату. Разделяет цифры запятыми.  
Как можно убрать автоматом запятые, чтобы вид был такой  
02.01.11  
02.01.11  
03.01.11  
03.01.11  
То есть был нормальный формат ДАТА  
 
С Уважением,  
Сергей
Нажатием кнопки запретить возможность изменения записей
 
Ребята, нашел процедуру:  
If InputBox("To PROTECT all sheets, enter the password below:") <> "321" Then Exit Sub  
For Each Worksheet In Worksheets  
Worksheet.Protect Password:="mypass", _  
DrawingObjects:=False, _  
Contents:=True, Scenarios:=False, _  
AllowFormattingCells:=False, _  
AllowFormattingColumns:=True, _  
AllowFormattingRows:=True, _  
AllowInsertingColumns:=False, _  
AllowInsertingRows:=True, _  
AllowInsertingHyperlinks:=False, _  
AllowDeletingColumns:=False, _  
AllowDeletingRows:=True, _  
AllowSorting:=False, _  
AllowFiltering:=False, _  
AllowUsingPivotTables:=False  
Next Worksheet  
 
End Sub  
 
 
Все работает, ок. но как в этом случае разблокировать программно же..
Нажатием кнопки запретить возможность изменения записей
 
Private Sub CommandButton1_Click()  
 
Первый раз пишу на Excel VBA, вот что то наклепал по быстрому, но компилятор ругается..    
 
Dim Sht As Worksheet  
Sht = лист1  
Sht.Protection.AllowDeletingColumns = False  
Sht.Protection.AllowDeletingRows = False  
Sht.Protection.AllowFormattingCells = False  
Sht.Protection.AllowFormattingColumns = False  
Sht.Protection.AllowFormattingRows = False  
Sht.Protection.AllowInsertingColumns = False  
Sht.Protection.AllowUsingPivotTables = True  
Sht.Protection.AllowSorting = True  
End Sub  
 
Помогите пожалуйста
Нажатием кнопки запретить возможность изменения записей
 
Уважаемые знатоки, здравствуйте!  
Возник вопрос по экселю следующего характера:  
Какую процедуру можно навесить на кнопку, чтобы запретить редактирование/изменение/добавления записей на лист приложения. Но доступ, копирование чтобы было возможно.  
 
Очень большой опыт с работой access VBA, а вот с экселевским VBA пока не разобрался..  
 
С Уважением,  
Сергей
Страницы: 1
Наверх