Visual Basic: новости сайтов, советы, примеры кодов.
Выпуск 17.


VB Студия VB Line
Голосование:

Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты.

Subscribe.Ru увеличило максимальный размер рассылки до 100 кб. В связи с этим вопрос:
Какого размера Вы хотели бы получать рассылку?

Менее 20 кб
От 20 до 40 кб
От 40 до 60 кб
От 60 до 80 кб
Выше 80 кб


В какой день (дни) недели Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Понедельник
Вторник
Среда
Четверг
Пятница
Суббота
Воскресение


С какой периодичностью Вы хотели бы получать рассылку "Visual Basic: новости сайтов, советы, примеры кодов."?
Каждый день
2 раза в неделю
Раз в неделю
Раз в две недели
Раз в месяц
Реже


Результаты голосования
Рассылки Subscribe.Ru
Новости сайта VBline и советы программистам
Мир программирования на Visual BASIC 5.0 и HTML.

Доска почёта:

Sergey Y. Tkachev
Кононенко Роман
Sergey Sapozhnikov
Sobic

Ссылки:

  • Улицы VB
  • Использование VB
  • VB Line
  • Азбука VB
  • VB на русском
  • Улицы VB
  • VB - шаг за шагом
  • Кирпичики VB
  • CообЧа VB
  • VB - мания
  • VB по русски
  • Snoozex Design
  • Несколько слов от автора:

       В этом выпуске поставил описание системы Эксперт. Обязательно прочитайте.
    Читайте!


    Содержание выпуска




    О системе Эксперт
    - Привет, Серый.
    - Угу, привет. Ты проходи, садись, я щас, с функцией тут разберусь...
    - Да я на момент. Вопросец имеется.
    - Вопросец, вопросец... Так, тут переменная не объявлена... Вопросец... С вопросами в систему, к экспертам... А тут точку не поставил! Вот она где, соб-бака!!
    - Ты че, какая система? Ты о чем?
    - О! Все, работает... Чего ты говоришь?
    - Ты про каких это экспертов тут заикаешься?
    - А-а. А ты что, первый раз слышишь, что ли? Ты на СообЧа бывал?
    - Где?!!
    - Да вот, гляди. Щас соединимся... Во! http://soobcha.ru, зришь?
    - М-да... Занятно. Так я с вопросом к тебе...
    - А я вот и говорю: туда иди, в систему "Эксперт", там ответят.
    - Это чайники, что ли, ответят?
    - Не сомневайся, ответят. Там у них такое наворочено... Короче, ты по почте вопрос свой задаешь - и все:)))))) Больше не изволь беспокоиться, там они сами будут искать ответ на твой вопрос. А через некоторое время вывалят тебе на ящик не один, а несколько ответов. Пользуйся и радуйся:)
    - А чего это они там такие добрые да услужливые? У них чего, своих проблем нет? Сколько я должен платить за такое трогательное беспокойство?
    - Ну, это немного. Меньше, чем ты думаешь:) Тебе достаточно только подтвердить правильный ответ. Давишь на соответствующую ссылку, дескать, вот этот ответ мне понравился, помог, и я доволен. Просто пустое письмо засылаешь к ним, и вся оплата. А если хочешь у них экспертом стать, то пожалуйста, регистрируйся и отвечай на вопросы.
    - Кем? Экспертом?
    - А что? Что-то ты ведь знаешь, не вчера за комп сел.
    - А на фига мне это надо? Разбираться с чужими проблемами... У меня своих - хоть отбавляй...
    - Ага. Вот ты только что спрашивал: а сколько? И если уж ты со своими проблемами обращаешься к людям, то ведь надеешься, что тебе помогут. А сам-то что, влом, что ли, помочь кому-то? Да ладно! Тебя, вобщем-то, никто и не тянет, не заставляет. А вот те, кому интересно, кому не жаль поделиться, те там и работают. Я, между прочим, давно уже с ними.
    - В смысле, экспертом, что ли, заделался? И сколько тебе платят?
    - А ты не прикалывай. Там никто никому не платит. А вот конкурсы, между прочим, проводят, и не хилые. Представляешь, за лучший ответ дают бесплатно три месяца платного хостинга, да еще домен регистрируют. За просто так. А вот тебе, если ты задашь самый лучший вопрос, тоже приз может выгореть.
    - Это как: лучший? На который никто ответить, что ли, не сможет? Так я щас таких вопро...
    - Причем тут это? Просто ты, если вопрос пишешь к ним, так сподобься хоть запятые в нужных местах поставить, там, грамотно, короче, обрисуй свой трабл.
    - Ну ладно, въехал. Ты мне вот лучше помоги с моим траблом. Мой Фотошоп не хочет по русски работать...
    - Ха, так этот трабл там уже сколько раз появлялся. У них на сайте и ответ есть... Вот, любуйся: Заходим в редактор реестра (regedit.exe). Находим ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\Nls\Codepage В нем изменяем значение параметра 1252 с cp_1252.nls на cp_1251.nls. Перезагружаемся...
    - Понял... погоди, запишу...
    - Да чего записывать? Шагай домой, входи на сайт и копируй...
    - Да я ссылку запишу... Слушай, а как там в эту систему вопрос задать? Вообще, как она работает?
    - Так тут же, на сайте, все есть. А вообще, можешь по почте пустое письмо загнать на mailto:reply.infoexpert@soobcha.ru, и получишь всю необходимую инфу. А вообще, ты лучше в следующий раз с вопросами не ко мне, а туда. Может, я и отвечу там.
    - А не проше тебе здесь ответить?
    - Э-э-э... Там я баллы зарабатываю...
    - А это еще зачем?
    - Ладно, мотай. Дома почитаешь, все о них узнаешь. У меня тут халтурка... Давай, пока.
    - Пока. А как ты экспертом там зарегился?
    - Иди, иди! Инфу читай...

    наверх


    Новости сайта VB Студия

    • 23 ноября 2001 года - Появился раздел книги. Там можно приобрести книги от магазина Колибри. По соглашению проекта СообЧа и магазина Колибри на все представленные в этом разделе книги предоставляется скидка в размере 5% от стоимости книги.
    • 20 ноября 2001 года - Было очень много жалоб на качество форума. Сегодня сделал другой форум. Очень красивый, и на мой взгляд удобный. По-прежнему располагается по этому адресу.
      Добавлено 2 примера.
    • 18 ноября 2001 года - Закончил очередную статью. Называется она просто - "MSFlexGrid". В ней описываются возможности и основы работы с контролом MSFlexGrid, который служит для отображения табличных данных.
      Старые новости уплыли в архив.
    • 16 ноября 2001 года - Добавил много разных примеров.
    • 13 ноября 2001 года - Добавил 4 примера. Один шифрует и соединяет в один файл несколько файлов. Второй переводит числа в разные системы счисления. Третий создаёт SaveGame для игры NightmareCreatures с нужными настройками. А четвёртый пример - шпион, который работает в локальной сети.
    • 11 ноября 2001 года - Дописал статью "Основы SQL". Можете почитать её здесь.
      В Библиотеку кодов добавлен один код.
      Небольшое пополнение в FAQ.
    • 7 ноября 2001 года - Добавлен контрол, изображающий координатную сетку.


    наверх


    Новости сайта VB Line

       12 ноября 2001 г. Решил, что Вам будет интересно узнать, кто сюда ходит и какова аудитория сайта. Все данные оформил в читаемом виде и положил сюда. Смотрите, читайте и изучайте. Конечно, немного, но все же статистика.
       11 ноября 2001 г. Ну вот, 7 ноября мне стукнуло 27 лет. Эх.. время. Ну да ладно, в Примеры положил интересную работу Андрея Перминова - добавление заголовка в обычное меню, думаю, что это будет интересно многим. Наконец-то появился новый совет, все наверное видели окна с недоступной кнопкой закрытия окна, а вот как это сделать, думаю, знают не все. Скажу сразу, что автор мне неизвестен, поэтому, если что, то пишите мне shatrykin@mail.ru. И, напоследок, хочу пожаловаться: что-то Вы мне маловато материала присылаете. Активнее надо быть!
       05 ноября 2001 г. Во-первых, я получил сертификат "Visual Basic Programmer" уровня Master от eCertification.com. Поздравления принимаются по прежнему адресу shatrykin@mail.ru.Во-вторых, на сайте есть одна "обновка". Stas(Sheff) Vorobiov прислал интересный пример игры с использованием DirectX.
       28 октября 2001 г. Представляю очень интересную статью: Динамическое создание ДТС-пакетов с помощью VB. Автор работы Андрей Чувахин. В статье показывается программное решение конкретной задачи по копированию данных из таблицы формата ДБФ в базу данных MS SQL Server.


    наверх


    Запуск DOS-приложения

    Автор:
    Николай

    '----
    ' этот код добавить в форму вместе с кнопкой
    Private Sub Command1_Click()
    Dim f As Variant
    'f = Shell("c:\autoexec.bat /K", 4)
    f = launchDosApp(Text1.Text, True, False, 4)
    MsgBox f
    End Sub
    ' этот код добавить в модуль
    Public Function launchDosApp(AppString As String, _
    Optional fConfirm As Boolean = False, _
    Optional fExit As Boolean = True, _
    Optional windowstyle = vbMaximizedFocus)
    'Запускает дос приложение, коммандная строка которого содержится
    ' в AppString, Если fconfirm=true, загружается оболочка дос в коммандной
    ' строке содержится AppString и запрос на исполнение, Если fConfirm = false
    ' (по умолчанию), приложение запускается сразу, если
    ' флаг fExit =true, сеанс Дос закрывается после завершение приложения
    On Error GoTo err_launchDosApp
    Dim sCommandString As String
    Dim sKey As String
    If fConfirm Then sKey = " /Y"
    sKey = sKey & " /" & IIf(fExit, "c", "k")
    'Y, C, K ключи Command.com
    If AppString = "" Then
    'запускается только коммандный процессор
    sCommandString = Environ$("comspec")
    Else
    sCommandString = Environ$("comspec") & sKey & " " & AppString
    End If
    launchDosApp = Shell(sCommandString, windowstyle)
    Exit_launchDosApp: Exit Function
    err_launchDosApp:
    MsgBox "Ошибка при запуске приложения:" & vbCrLf & _
    Err.Number & " " & Err.Description, vbCritical
    Resume Exit_launchDosApp
    End Function
    '----

    наверх


    Есть ли диск в устройстве

    Автор:
    Шаронов Игорь Александрович

    Добавьте на форму элемент DriveListBox и элемент CommandButton. Запустите программу. Выбирая в элементе DriveListBox любое устройство (дисковод или привод CD-Rom) и нажимая на кнопку вы узнаете, находится ли дискетка или лазерный диск в устройстве. Добавьте следующий код:

    Private Declare Function GetVolumeInformation Lib "kernel32" Alias_
    "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal_
    lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long,_
    lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long,_
    lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String,_
    ByVal nFileSystemNameSize As Long) As Long

    Private Sub Command1_Click()
    erg& = GetVolumeInformation(Drive1.Drive, VolName$, 127&, VolNumber&, MCM&, FSF&, FSys$, 127&)
    If erg& = 0 Then
    MsgBox "Ничего в текущем устройстве нет"
    Else
    MsgBox "В текущем устройстве присутствует диск"
    End If
    End Sub

    наверх


    Определение високосного года

    Те, кто думают, что високосный год - это тот, который делится без остатка начетыре, глубоко заблуждаются. Так определяется високосный год в Юлианскомкалендаре (старый стиль). А вот в Григорианском (новый стиль) - дляустранения несоответствия календарного и солнечного (астрономического) года100-й год не считается високосным, но каждый 400-й - считается. Ошибкасредней продолжительности года в этом алгоритме составляет всего 26 секунд. Таким образом, алгоритм определения високосного года выглядит следующимобразом:

    Public Function IsLeapYear(iYear As Integer)' Проверка високосного года
    If (iYear Mod 4 = 0) And _((iYear Mod 100 > 0) Or (iYear Mod 400 = 0)) Then
    IsLeapYear = True ' високосный
    Else
    IsLeapYear = False ' не високосный
    End If
    End Function

    Hо можно придумать алгоритм гораздо проще. Еще раз -- что такое високосный год? Правильно, тот, который имеет дату 29 февраля. А значит, работает такой алгоритм:

    Function IsLeap (sYear As String) As Integer
    IsLeap = FalseIf IsDate ("02/29/" & sYear) Then
    IsLeap = True
    End Function

    Данный алгоритм определения високосного года можно применять только к Григорианскому календарю, который был введен в действие в 1582 году. А до этого момента следует использовать правило Юлианского календаря.

    наверх


    Оторбражет диалог выбора папки и открытия/сохранения файла

    Автор
    Белодед М Ю

    Type OPENFILENAME
      longStructSize As Long
      hwndOwner As Long
      hInstance As Long
      strFilter As String
      strCustomFilter As String
      intMaxCustFilert As Long
      intFilterIndex As Long
      strFile As String
      intMaxFile As Long
      strFileTitle As String
      intMaxFileTitle As Long
      strInitialDir As String
      strTitle As String
      lngFlags As Long
      intFileOffset As Integer
      intFileExtention As Integer
      strDefExt As String
      lngCustData As Long
      lngfnHook As Long
      strTemlplateName As String
    End Type

    Type BROWSEINFO
      hOwner As Long
      pidlRoot As Long
      pszDisplayName As String
      lpszTitle As String
      ulFlags As Long
      lpfn As Long
      lParam As Long
      iImage As Long
    End Type

    ' дя работы с окнами файлов
    Declare Function GetOpenFileName Lib "comdlg32.dll" _
      Alias "GetOpenFileNameA" (ofn As OPENFILENAME) As Boolean
    Declare Function GetSaveFileName Lib "comdlg32.dll" _
      Alias "GetSaveFileNameA" (ofn As OPENFILENAME) As Boolean
    Declare Function GetActiveWindow Lib "User32.dll" () As Long
    'для каталогов
    Declare Function SHGetPathFromIDList Lib "shell32.dll" _
      Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
    Declare Function SHBrowseForFolder Lib "shell32.dll" _
      Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

    Const OFN_READONLY = 1
    Const OFN_OVERWRITEPROMPT = 2
    Const OFN_HIDEREADONLY = 4
    Const OFN_NOCHANGEDIR = 8
    Const OFN_SHOWHELP = 16
    Const OFN_ENABLEHOOK = 32
    Const OFN_ENABLETEMPLATE = 64
    Const OFN_ENABLETEMPLATEHANDLE = 128
    Const OFN_NOVALIDATE = 256
    Const OFN_ALLOWMULTISELECT = 512
    Const OFN_EXTENSIONDIFFERENT = 1024
    Const OFN_PATHMUSTEXIST = 2048
    Const OFN_FILEMUSTEXIST = 4096
    Const OFN_CREATEPROMPT = 8192
    Const OFN_SHAREAWARE = 16384
    Const OFN_NOREADONLYRETURN = 32768
    Const OFN_NOTESTFILECREATE = 65536
    Const OFN_NONETWORKBUTTON = 131072
    Const OFN_NOLONGNAMES = 262144 'force no long names for 4.x modules
    Const OFN_EXPLORER = 524288 'new look commdlg
    Const OFN_NODEREFERENCELINKS = 1048576
    Const OFN_LONGNAMES = 2097152 'force long names for 3.x modules
    Const OFN_ENABLEINCLUDENOTIFY = 4194304 'send include message to callback
    Const OFN_ENABLESIZING = 8388608
    Const BIF_RETURNONLYFSDIRS = &H1
    Const PI = 3.14

    'Работа с папками
    Public Function BrowseFolder(szDialogTitle As String) As String
      Dim X As Long, bi As BROWSEINFO, dwIList As Long
      Dim szPath As String, wPos As Integer

        With bi
            .hOwner = hWndAccessApp
            .lpszTitle = szDialogTitle
        .ulFlags = BIF_RETURNONLYFSDIRS
        End With

        dwIList = SHBrowseForFolder(bi)
        szPath = Space$(512)
        X = SHGetPathFromIDList(ByVal dwIList, ByVal szPath)

        If X Then
            wPos = InStr(szPath, Chr(0))
            BrowseFolder = Left$(szPath, wPos - 1)
        Else
            BrowseFolder = ""
        End If
    End Function

    'Работа с файлами
    Public Function FileDialog( _
        Optional strInitDir As String, _
        Optional strFilter As String = "Все файлы" & vbNullChar & "*.*" _
            & vbNullChar & vbNullChar, _
        Optional intFilterIndex As Integer = 1, _
        Optional strDefaultExt As String, _
        Optional strFilename As String, _
        Optional strDialogTitle As String = "Открытие файла", _
        Optional hwnd As Long = -1, _
        Optional fOpenFile As Boolean = True, _
        Optional ByRef lngFlags As Long = _
          (OFN_HIDEREADONLY + OFN_PATHMUSTEXIST + OFN_FILEMUSTEXIST)) As Variant
    'Функция вызова диалогового окна Открыть/Сохранить
    'Все аргументы необязательны. Возвращает имя файла или пустую строку ("")

    Dim ofn As OPENFILENAME
    Dim strFileTitle As String
    Dim fRezalt As Boolean
    Dim ret As String, s As String, i As Integer

    ' Заполнение пропущенных аргументов
    If strInitDir = "" Then
        strInitDir = CurDir
    End If
    If hwnd = -1 Then
        hwnd = GetActiveWindow()
    End If

    ' Установка буферов для результата
    strFilename = strFilename & String(255 - Len(strFilename), 0)
    strFileTitle = String(255, 0)

    With ofn
        .longStructSize = Len(ofn)
        .hwndOwner = hwnd
        .strFilter = strFilter
        .intFilterIndex = intFilterIndex
        .strFile = strFilename
        .intMaxFile = Len(strFilename)
        .strFileTitle = strFileTitle
        .intMaxFileTitle = Len(strFileTitle)
        .strTitle = strDialogTitle
        .lngFlags = lngFlags
        .strDefExt = strDefaultExt
        .strInitialDir = strInitDir
        .hInstance = 0
        .strCustomFilter = String(255, 0)
        .intMaxCustFilert = 255
        .lngfnHook = 0
    End With
    'Вызов - Открыть/Сохранить
    If fOpenFile Then
        fRezalt = GetOpenFileName(ofn)
    Else
        fRezalt = GetSaveFileName(ofn)
    End If

    If fRezalt Then
        FileDialog = Left(ofn.strFile, InStr(1, ofn.strFile, Chr(0)) - 1)
    Else
        FileDialog = ""
    End If

    End Function

    наверх


    Сумма прописью

    Автор
    Алексей Лукин

    Dim Сумма As Currency, Остаток As Currency

    Function Десятки(Разряд As Long) As String

    Select Case Разряд
    Case 2
    Десятки = "двадцать "
    Case 3
    Десятки = "тридцать "
    Case 4
    Десятки = "сорок "
    Case 5
    Десятки = "пятьдесят "
    Case 6
    Десятки = "шестьдесят "
    Case 7
    Десятки = "семьдесят "
    Case 8
    Десятки = "восемьдесят "
    Case 9
    Десятки = "девяносто "
    End Select

    End Function

    Function Единицы(Разряд As Long, Род As String) As String

    Select Case Разряд
    Case 1
    If Род = "Мужской" Then
    Единицы = "один "
    Else
    Единицы = "одна "
    End If
    Case 2
    If Род = "Мужской" Then
    Единицы = "два "
    Else
    Единицы = "две "
    End If
    Case 3
    Единицы = "три "
    Case 4
    Единицы = "четыре "
    Case 5
    Единицы = "пять "
    Case 6
    Единицы = "шесть "
    Case 7
    Единицы = "семь "
    Case 8
    Единицы = "восемь "
    Case 9
    Единицы = "девять "
    Case 10
    Единицы = "десять "
    Case 11
    Единицы = "одиннадцать "
    Case 12
    Единицы = "двенадцать "
    Case 13
    Единицы = "тринадцать "
    Case 14
    Единицы = "четырнадцать "
    Case 15
    Единицы = "пятнадцать "
    Case 16
    Единицы = "шестнадцать "
    Case 17
    Единицы = "семнадцать "
    Case 18
    Единицы = "восемнадцать "
    Case 19
    Единицы = "девятнадцать "

    End Select

    End Function

    Function Миллионы(Разряд As Long) As String

    If Разряд = 1 Then
    Миллионы = "миллион "
    ElseIf Разряд > 1 And Разряд < 5 Then
    Миллионы = "миллиона "
    Else
    Миллионы = "миллионов "
    End If

    End Function

    Function Рубли(Разряд As Long) As String

    If Разряд = 1 Then
    Рубли = "рубль"
    ElseIf Разряд > 1 And Разряд < 5 Then
    Рубли = "рубля"
    Else
    Рубли = "рублей"
    End If

    End Function

    Function Сотни(Разряд As Long) As String

    Select Case Разряд
    Case 1
    Сотни = "сто "
    Case 2
    Сотни = "двести "
    Case 3
    Сотни = "триста "
    Case 4
    Сотни = "четыреста "
    Case 5
    Сотни = "пятьсот "
    Case 6
    Сотни = "шестьсот "
    Case 7
    Сотни = "семьсот "
    Case 8
    Сотни = "восемьсот "
    Case 9
    Сотни = "девятьсот "
    End Select

    End Function

    Function СуммаПрописью(СуммаСчета As Double) As String
    ' Параметры: Используются глобальные параметры
    ' Сумма, Остаток и Подпись
    ' Назначение: Перевод СуммыСчета в строковую константу
    ' Возвращает: СуммуПрописью

    Dim Группа As Long, Разряд As Long, Длина As Integer
    Dim Пропись As String
    Dim cents As String
    Dim cent As Long
    cent = Format(CInt((СуммаСчета - Fix(СуммаСчета)) * 100))
    Сумма = СуммаСчета
    If Сумма < CLng(Сумма) Then Сумма = Сумма - 1
    Остаток = Сумма

    Группа = Остаток \ 1000000
    If Группа <> 0 Then
    Разряд = Группа \ 100
    Пропись = Пропись & Сотни(Разряд)
    Остаток = Остаток - Разряд * 100 * 1000000
    Группа = Группа - Разряд * 100

    If Группа > 19 Then
    Разряд = Группа \ 10
    Пропись = Пропись & Десятки(Разряд)
    Остаток = Остаток - Разряд * 10 * 1000000
    Группа = Группа - Разряд * 10
    End If

    Разряд = Группа
    Пропись = Пропись & Единицы(Разряд, "Мужской")
    Остаток = Остаток - Разряд * 1000000

    Пропись = Пропись & Миллионы(Разряд)
    End If

    Группа = Остаток \ 1000
    If Группа <> 0 Then
    Разряд = Группа \ 100
    Пропись = Пропись & Сотни(Разряд)
    Остаток = Остаток - Разряд * 100 * 1000
    Группа = Группа - Разряд * 100

    If Группа > 19 Then
    Разряд = Группа \ 10
    Пропись = Пропись & Десятки(Разряд)
    Остаток = Остаток - Разряд * 10 * 1000
    Группа = Группа - Разряд * 10
    End If

    Разряд = Группа
    Пропись = Пропись & Единицы(Разряд, "Женский")
    Остаток = Остаток - Разряд * 1000

    Пропись = Пропись & Тысячи(Разряд)
    End If

    Группа = Остаток
    If Группа <> 0 Then
    Разряд = Группа \ 100
    Пропись = Пропись & Сотни(Разряд)
    Остаток = Остаток - Разряд * 100
    Группа = Группа - Разряд * 100

    If Группа > 19 Then
    Разряд = Группа \ 10
    Пропись = Пропись & Десятки(Разряд)
    Остаток = Остаток - Разряд * 10
    Группа = Группа - Разряд * 10
    End If

    Разряд = Группа
    Пропись = Пропись & Единицы(Разряд, "Мужской")
    Остаток = Остаток - Разряд

    Пропись = Пропись & Рубли(Разряд)
    End If

    Длина = Len(Пропись)
    If IsNull(Длина) Then
    Exit Function
    End If

    Пропись = UCase(Mid(Пропись, 1, 1)) & (Mid(Пропись, 2, Длина))

    If cent < 20 Then
    cents = Единицы(cent, "Женский")
    Else
    cents = Десятки(CInt(cent / 10))
    cents = cents & Единицы(CInt(cent - (CInt(cent / 10) * 10)), "Женский")
    End If


    СуммаПрописью = Пропись & " " & cents & "коп."

    End Function


    Function Тысячи(Разряд As Long) As String

    If Разряд = 1 Then
    Тысячи = "тысяча "
    ElseIf Разряд > 1 And Разряд < 5 Then
    Тысячи = "тысячи "
    Else
    Тысячи = "тысяч "
    End If

    End Function

    наверх


    Книги

    ADO и Visual Basic. Руководство разработчика

       В книге описано использование технологии доступа к данным (ADO) с помощью основного инструмента разработки приложений Microsoft - Visual Basic 6.0.
       Из книги вы узнаете, как можно исследовать источники данных при помощи окна Data View, как создавать формы для ввода и запроса данных, используя связанные элементы управления, и подсоединяться к источникам данных со сложной иерархической структурой средствами Data Environment. Далее вы изучите, как можно, используя Data Report, представлять информацию в форме, подходящей для печати, или как следует исполнять некоторые, наиболее широко распространенные задачи, связанные с обработкой данных, используя ADO внутри кода Visual Basic. В последних главах книги рассмотрены дополнительные операции, используемые в коде, в том числе формирование данных, для создания иерархических наборов записей, применение ADO в сети Internet и даже создание собственных источников данных.
       Чтобы боле полно использовать средства ADO для извлечения информации из различных источников, в приложении к книге вы найдете справочник по языку SQL, в котором обсуждаются основы работы с оператором SQL SELECT.


    Гандерлой М., "Бином" - 2001, 336 стр.
    Стоимость: 169 р.
    Переплет: нет данных

    VBA 2000 самоучитель

       В книге содержится краткий курс по использованию языка и системы VBA для Word и Excel 2000. Книга предназначена для начинающих программировать в среде Windows 95/9S с использованием в качестве базовых таких объектов Word и Excel, как документы, рабочие книги, листы и так далее.
       Материала книги достаточно для создания как простых макросов, помогающих автоматизировать рутинную повторяющуюся работу над документами и электронными таблицами, так и для разработки достаточно сложных приложений, обрабатывающих данные в диалоговых окнах, обеспечивающих пользователя самыми современными интерфейсными средствами.


    Кузьменко В.Г., "Бином" - 2000, 408 стр.
    Стоимость: 111,26 р.
    Формат книги: 70х100/16
    Переплет: мягкий

    VBA в Office 2000 учебный курс

       В этой книге описывается Visual Basic for Applications — подмножество популярнейшего языка программирования Visual Basic. Изучив ее материал, вы сможете создавать собственные интегрированные приложения, которые используют как объектные модели стандартных приложений MS Office, так и объектные модели ADO и DAO.
       Книга предназначена для всех пользователей MS Office 2000 —независимо от степени их владения программированием.


    Васильев А., Андреев А., "Питер" - 2000, 432 стр.
    Стоимость: 102,19 р.
    Формат книги: 70х100/16
    Переплет: нет данных



    Остальные книги о VB из магазина Колибри можно найти
    здесь.

    наверх


    Анонсы эхо-конференций СообЧа

    Хостинг. Где лучше?

       
    Ну, сделал ты свою страничку. А дальше? Выбираешь хостинг-провайдера и заливаешь ее для всеобщего обозрения. И тут тебя ждет сюрприз — через неделю пропадает связь с сервером, и на твой сайт уже никто попасть не может. Судорожно летишь останавливать показ баннеров. Через неделю повторяется то же самое. Начинаешь задумываться о смене провайдера, но как же выбрать, чтоб опять не ошибиться?

    Подписаться

    Сервисы в интернете

       
    Интернет — это не только сайты с анекдотами и новостями. Интернет — это еще и море всевозможных и разнообразных услуг, платных и бесплатных. А что, вы о них знаете? Ааа… знаете? Тогда поделитесь с другими. А если не знаете — спросите.

    Подписаться

    Интернет-программирование

       
    Вы хотите создать страницу в Сети, но не хотите использовать различные готовые шаблоны или же уже много умеете, но вам надоели гостевые книги и конференции от других сайтов. Вы изучаете язык, на котором хотите программировать в Интернет, но у вас появляются различные вопросы. Для всего этого и нужна группа SoobCha_Inet_Prog.

    Подписаться

    Графика

       
    Вам нравиться рисовать? Надо обработать фотографии? Создать баннер или логотип? У вас есть опыт работы с рисунками, и вы хотите с ним поделиться? У вас нет опыта, но вы горите желанием научиться? Тогда вам сюда. В группе обсуждаются все вопросы, связанные с двухмерной графикой.

    Подписаться

    Информатика в школе

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

    Подписаться

    наверх


    Доска объявлений

       Ищу телеработу.

    • Переводы: английский, украинский, русский.
    • Cipper программист.
    • Assembler программист.
    • PIC разработчик
    • композитор
    • Прогрессивные стили
    • 3D анимация
    • GIF анимация
    Антон Лозовский.

       Объявляется конкурс на лучщий баннер для сайта VB Студия. Приз за лучший баннер - 5000 показов баннерообменной сети TLE. Вопросы и предложения по этому адресу


       Требуется человек, знающий HTML для работы с сайтом группы СооБчаVB. Вопросы и предложения по этому адресу

    наверх



    Мои программы

    BalloonMessage for MS Agent

       BalloonMessage for Microsoft Agent реализует диалог программы с пользователем, используя при этом технологию Microsoft Agent. OCX реализует три типа диалоговых окон: InputBox, MsgBox и MsgLabels.

    Подробнее...


    наверх


    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:


    Автор вопроса:
    Сергей

    Ответ ожидается по этому адресу

       Как на Visual'е можно подключить базу данных, если эта база данных находится на сервере. Имя сервера неизвестно.


    Автор вопроса: Виталий

    Ответ ожидается по этому адресу

       Мне необходимо создать activeX.dll с какой-то вложенной функцией и передавать из программы (основной - возможно на другом языке Visual С++ или делфи) массив данных для обработки моей dll, и соответственно его возвращать. Другой вариант - мой dll сам создаёт какой-то массив данных и мне его нужно отдавать внешней программе по запросу. Подскажите как это реализовать. Несколько переменных я могу передать(вернуть) по отдельности каждую, а массив как-то не получается.


    Автор вопроса: Пономарев Павел

    Ответ ожидается по этому адресу

       Как из VB6 изменить пути к таблицам dbf в CrystalReport? Возможно, я неправильно пользуюсь SetTableLocation?


    Автор вопроса: Анучин А.Н.

    Ответ ожидается по этому адресу

       Подскажите, пожалуйста, как подлючить к VB-программе подпрограмму на языке ассемблера.


    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

       Подскажите пожалуйста как сделать Репорт на основе данных массива.




    Ответы:


    Вопрос:

       Напроглал на VB программу,но она не со всеми комьютрами работает (веяде 98винд 97офис), испольяуент она ADO к БД Акцессу(..Adodc1.Recordset.AddNew "myField","ssss") - то проблема : на моем компе прога естественно пашет на другом где не стоит VB она тоже пашет а на еще другом компе выдает сообщение "runtime error испольяуйте обновляемый яапрос". В чем проблема, вроде ОФИС веяде 97 (Может влияют раные библиотеки версий офиса 97 )?

    ps Думается если янал бы VC то не янал бы хлопот с офисом если конечно это ия-яа него, в VC наверняка встроенные библиотеки, и не обяяательно вообще ставить офис?

    Ответ:

    Автор ответа: Кононенко Роман

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


    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх


    Выпуск подготовили:

    Сурменок Павел и Шатрыкин Иван