Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

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


Информационный Канал Subscribe.Ru

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


VBNet VBMania
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • VB на русском
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • MDesign
  • IgorykSoft
  • DanSoft
  • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

       Это новый выпуск.
    Читайте!


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




    Как заполнить MS FlexGrid данными из БД с помощью DAO?

    Вопрос:

    Есть база данных Stat1.mdb . В ней таблица Statistics и в ней 3 поля SpyLogHits (Numeric), SpyLogHosts (Numeric), sDate (Date/Time). На форме стоит MSFlexGrid1. Нужно используя DAO программно запихать информацию из таблицы в MSFlexGrid1. Как это сделать?

    Ответ:

    Sub GetData()
       Dim con, rs
       Set con = DAO.OpenDatabase("C:\Documents and Settings\hamzat\My Documents\stat1.mdb")
       Set rs = con.OpenRecordset("select * from Statistics")
       MsFelxGrid1.Rows = 1
       MsFelxGrid1.Cols = 3
       MsFelxGrid1.TextMatrix(0, 0) = "SpyLogHits"
       MsFelxGrid1.TextMatrix(0, 1) = "SpyLogHosts"
       MsFelxGrid1.TextMatrix(0, 2) = "sDate"
       While Not rs.EOF
           MsFelxGrid1.Rows = MsFelxGrid1.Rows + 1
           MsFelxGrid1.TextMatrix(MsFelxGrid1.Rows - 1, 0) = rs("SpyLogHits")
           MsFelxGrid1.TextMatrix(MsFelxGrid1.Rows - 1, 1) = rs("SpyLogHosts")
           MsFelxGrid1.TextMatrix(MsFelxGrid1.Rows - 1, 2) = rs("sDate")
           rs.MoveNext
       Wend
       Set rs = Nothing
       Set con = Nothing
    End Sub

    Hamzat SALЭHOV

    наверх


    Как закрыть приложение Excel, запущенное с помощью OLE Automation?

    Вопрос:

    Внедряю .xls в Access (использую OLE). Сразу открывается этот файл. Каким образом заставить минимизироваться приложение Excel и как мне закрыть файл .xls или Excel.

    Ответ:

    Set appExcel = CreateObject("Excel.Application")
    appExcel.Visible = False

    Анатолий Лящук

    наверх


    Как не дать форме потерять фокус?

    Вопрос:

    Как не дать форме потерять фокус, пока не нажата определённая кнопка или выполнить действия, совершаемые по её нажатию?

    Ответ:

    sub form1_lostfocus
        form1.setfocus
    end sub

        Oybek Umarov

    наверх


    Как можно передавать параметр (из формы) в SQL Server?

    Вопрос:

    Есть у меня БД на Access. В этой базе у меня нет проблем с передачей параметров в запрос из формы. Например так

    Where [WGID]=[Forms]![WG]![WGID]

    Как можно передавать параметр (из формы) в SQL Server?

    Ответ:

    Для выборок можно попробовать с помощью user-defined functions.
    Можно делать так:

    Select * FROM myFunc(123) - вернет выборку.

    Со StoredProcedures с параметрами можно работать через ADO. В объекте Command есть такая коллекция Parameters. Вот примерчик:

    USE pubs
    GO
    CREATE PROCEDURE myProc
    @outparm int OUTPUT
    @inparm int
    AS
    SELECT * FROM titles WHERE royalty > @inparm
    SELECT @outparm = COUNT (*) FROM TITLES WHERE royalty > @inparm
    IF (@outparm > 0)
    RETURN 0
    ELSE
    RETURN 99
    GO

    An ADO code program that executes the stored procedure myProc is shown here.

    Dim cn As New ADODB.Connection
    Dim cmd As New ADODB.Command
    Dim rs As New ADODB.Recordset
    Dim fldloop As ADODB.Field
    Dim param1 As Parameter, param2 As Parameter, param3 As Parameter
    Dim provStr As String
    Dim royalty As Variant

    Private Sub spStart()

    ' Connect using the SQLOLEDB provider.
    cn.Provider = "sqloledb"

    ' Specify connection string on Open method.
    provStr = "Server=MyServer;Database=pubs;Trusted_Connection=yes"
    cn.Open provStr

    ' Set up a command object for the stored procedure.
    Set cmd.ActiveConnection = cn
    cmd.CommandText = "myProc"
    cmd.CommandType = adCmdStoredProc

    ' Set up a return parameter.
    Set param1 = cmd.CreateParameter("Return", adInteger, adParamReturnValue)
    cmd.Parameters.Append param1

    ' Set up an output parameter.
    Set param2 = cmd.CreateParameter("Output", adInteger, adParamOutput)
    cmd.Parameters.Append param2

    ' Set up an input parameter.
    Set param3 = cmd.CreateParameter("Input", adInteger, adParamInput)
    cmd.Parameters.Append param3
    royalty = Trim(InputBox("Enter royalty:"))
    param3.Value = royalty

    ' Execute command, and loop through recordset, printing out rows.
    Set rs = cmd.Execute

    Dim i As Integer
    While Not rs.EOF
    For Each fldloop In rs.Fields
    Debug.Print rs.Fields(i)
    i = i + 1
    Next fldloop
    Debug.Print ""
    i = 0
    rs.MoveNext
    Wend

    ' Need to close recordset before getting return
    ' and output parameters.
    rs.Close

    Debug.Print "Program ended with return code: " & Cmd(0)
    Debug.Print "Total rows satisfying condition: " & Cmd(1)
    cn.Close

    End Sub

        Shemyakin, Dmitry

    наверх


    Как можно в TextBox'e все символы, кроме цифр менять на запятую?

    Вопрос:

    Как можно в TextBox'e все символы, кроме цифр менять на запятую?

    Ответ:

    Очень просто берешь каждый символ из текстбокса и сравниваешь его:

    if asc(i$)<asc("0") and asc(i$)>asc("9") then
    i=","
    endif

        Алексей

    наверх


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

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

    Вопросы:


    Автор вопроса: Vlad

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

       Как в run-time изменить количество страниц в контроле MultiPage или аналогичном ему (TabStrip, SSTab)?
    Существует картотека в БД (MS Access), каждая карта имеет несколько страниц, которые, соответственно, отображаются в контроле. В ходе выполнения программы при создании новой страницы карты в БД необходимо, чтобы эта страница отобразилась в контроле. И наоборот - при удалении страницы.


    Автор вопроса: Роман

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

       В QuickBasic'е была функция PRINT USING "##". Благодаря ей, числа выводились в колонку по 2 символа. Как это осуществить в VB6.
    Как использовать функцию FORMAT, какие символы используются для форматирования. Примеры, плз :)




    Ответы:


    Вопрос:

       Как записать в файл data.db (формат взят проиявольно), значение
    переменной t из приложения при нажатии на кнопку command1?

    Ответ:

    Автор ответа: SolWo

    Очень просто:
    Открываешь новый (или существующий файл)для записи:

    open "c:\temp\data.db" for Output as #1

    Необходимой переменной присваиваешь искомое значение:

    t = 10293

    и записываешь в файл:

    Print #1, t

    когда все действия выполнены, закрываешь файл:

    Close #1


    Вопрос:

       Подскажите пожалуйста, какой код вписать в прогу, чтобы она перебирала файлы в определенной дериктории, как это делает например AVP Касперского?

    Ответ:

    Автор ответа: SolWo

       Делаем так:
       Подключаем к проекту дополнения (references) - Microsoft Scripting runtume (через меню Projects)

    Далее пишем в коде:
    Dim fso As New FileSystemObject
    Dim fold As Folder
    Dim fil As File

    Set fold = fso.GetFolder("c:\...") '(Здесь вместо ... указываем
    необходимую дирректорию, в которой будем перебирать файлы)

    Далее:

    If fold.Files.Count <> 0 Then 'Если в директории есть файлы,
    начинаем их перебирать:

         For Each fil In fold.Files

             debug.print fil.Attributes ' обращаясь здесь непосредственно к
             переменной fil, мы получаем досуп последовательно ко всем файлам текущей
             дирректории. И делать с ними можно все что угодоно.
         Next
         
      End If


    Вопрос:

       Как в VB разбить слово по слогам?

    Ответ:

    Автор ответа: Максим Турков

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


    Вопрос:

       Вопрос следующий. Он касается открытия лотка CD-Rom. Функция mciSendString("set CDAudio door open", 0,0,0) прекрасно работает. Но только на машинах с одним приводом, как работать на машинах с двумя CD-Rom. Какие дополнительные параметры нужно указать.

    Ответ:

    Автор ответа: Максим Турков

    Это не давно обсуждалось в этой рассылке. Смотри архив.


    Вопрос:

       Проблема следующая. Нужно передать кучу параметров одной переменной. Я пишу следующее:

    В модуле объявляю тип, в котором включены все данные

    Public Type данные_оборудования
         ID As Single
         наимен_оборуд As String
    End Type

    В одной форме пишу

    Public Function данные_формы(данные As данные_оборудования) As
    данные_оборудования
    данные.ID = 10
    данные.наимен_оборуд = "Какое-то название"
    данные_формы=данные
    End Function

    В другой форме пытаюсь их получить

    Dim данные As данные_оборудования
    данные = оборудование_Форма.данные_формы(данные)

    И он мне пишет, что только общие определённые пользователем типы в общих модулях объектов могут использоваться как параметры или возвращённые типы для общих процедур модулей классов или как области общих определённых пользователем типов.
    Что он от меня хочет?

    Ответ:

    Автор ответа: Максим Турков

    Попробуй использовать массив. В поле с индексом 0 будет ID, с индексом 1 имя.


    Вопрос:

       Люди у кого есть пример использования Speech API, преобразования речи в текст.

    Ответ:

    Автор ответа: Максим Турков

    Не помню точно, то ли на vbnet.ru, или на vbstreets.ru есть пример.


    Вопрос:

       Подскажите, как сравнить системную дату с датой их базы данных .mdb?

    Ответ:

    Автор ответа: Максим Турков

    Системные дата и время:

    Date
    Now
    Time


    Вопрос:

       Как открыть окно “Мой компьютер”?

    Ответ:

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

    shell "Explorer", vbMaximizedFocus


    Вопрос:

       Уак программно, без ведома пользователя скопировать файл в какуй-либо папку (ну например С:\programm files) ?

    Ответ:

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

    FileCopy Source, Dest


    Вопрос:

       Написал прогу, используя компонент ActiveX. У меня она работает, а у других нет, выдаёт ошибку о том , что якобы не может найти ActiveX. Что делать?

    Ответ:

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

    Нужно у пользователя установить этот ActiveX

    Можно вручную:

    RegSvr32 "C:\MyProg\collcomponent.dll

    Или создать инсталяцию мастером PDW (входит в состав VB) и он будет регестрировать библиотеки сам.



    Ответ:

    Автор ответа: Иванченко Максим

    При установке ActiveX нужно копировать в системную папку (для 9х - C:\Windows\System, для ХР - С:\Windows\System32) и регистрировать!



    Ответ:

    Автор ответа: Максим Турков

    ActiveX должен быть зарегистрирован.



    Ответ:

    Автор ответа: Anakonda

    Таскать ActiveX с собой!
    Лучше сделать инсталятор, чтобы он устанавливал на машину твою программу со всеми компонентами.
    А ещё лучше не использовать ActiveX, а использовать UserControl'ы или Windows API :)


    Вопрос:

       Можно ли в VB использовать команды MS-DOS?

    Ответ:

    Автор ответа: Максим Турков

    Некоторые команды ВБ совпадают с дос. Например, rmdir.



    Ответ:

    Автор ответа: Anakonda

    Можно, например, создать BAT файл, в него прописать все команды какие тебе нужны, а затем его запустить. Запускать надо с параметром vbHide:

    Shell "имя_bat_файла", vbHide


    Вопрос:

       При испольяовании DirListBox, как изменять жосткий диск.

    Ответ:

    Автор ответа: Максим Турков

    Просто присвой методу path свой жОсткий диск.

    DirListBox.Path="D:\"




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

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

    наверх


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

    Сурменок Павел


    http://subscribe.ru/
    E-mail: ask@subscribe.ru
    Отписаться
    Убрать рекламу

    В избранное