Ir para conteúdo
Fórum Script Brasil
  • 0

Dialog Box


amanda_leite

Pergunta

Pessoal gostaria de elaborar um Dialog Box para o script abaixo;

Sub Main
    dbName = Client.UniqueFileName("relatorio")
    Client.ImportODBCFile "A", dbName, FALSE, ";DSN= ser1; UID=user;PWD=user-senha;SERVER=server1;", "select * from fornec" 
    Set db = Client.OpenDatabase (dbName)
End Sub

O Dialog seria para os seguintes campos;

relatorio (Textbox para digitar o nome do arquivo.)

Uma listbox para DSN (ser1, ser2, ser3)

Uma listbox para UID (user1, user2, user3)

Uma listbox para PWD vinculada ao UID (user1-senha, user2-senha, user3-senha)

Uma listbox para SERVER. (server1, server2)

Por fim uma Textbox para digitar o comando select

Ficarei eternamente grata

Editado por amanda_leite
Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0
o q você quer dizer com Dialog Box?? você quer dizer tipo uma janelinha pra ele passar esses parametros??

ou é algum componente q eu não conheco??

você não pode fazer um formulario com todos esses campos e pronto??

qual é exatamente seu problema??

Oi kuroi, bom dia

venho tentando gerar um formulário (VB não é a minha praia) para inserir no script o DSN do banco de dado (trabalhamos com 3) e o SERVER (2 opções) e os usuários (3, um para cada banco) e por fim a declaração SQL para gerar o filtro de extração dos dados.

atualmente estamos trabalhando com um soft de extração e análise de dados (IDEA da Case Ware) que é capaz de executar scripts do VB e para automatizar a conexão com o banco de dados estou feito uma louca :unsure: tentando montar esse formulário.

O script que desenvolvi é esse ai abaixo, porém, sempre que vou importar os dados tenho que ficar inserindos os comandos diretamente no script <_< . Os campos nos formulários seriam para os campos marcados (list-box para todos, exceto para o FileName e select que seriam text-box).

Sub Main

dbName = Client.UniqueFileName("relatorio")

Client.ImportODBCFile "A", dbName, FALSE, ";DSN= ser1; UID=user;PWD=user-senha;SERVER=server1;", "select * from fornec"

Set db = Client.OpenDatabase (dbName)

End Sub

Editado por amanda_leite
Link para o comentário
Compartilhar em outros sites

  • 0

mas essa sub main ta no Module, certo?? e é a primera q ele executa no programa, certo?? então, nessa hora ele não ter nenhum formulario aberto, por isso não tem de onde tirar as informacoes. ou você chama o formulario da sub main, então, ou você poe pro projeto inciar no formulario.

e apesar de você falar em usar ListBox pra mostrar a lista, acho q seria melhor uma ComboBox, não?? bom, mas você q sabe.

mas ai o codigo ficaria tipo assim:

dbName = Client.UniqueFileName(txtRelatorio.Text)
Client.ImportODBCFile "A", dbName, FALSE, ";DSN= " & lstDSN.Text & "; UID=" & lstUID.Text & ";PWD=" & lstPWD.Text & ";SERVER=" & lstServer.Text & ";", txtQuery.Text
Set db = Client.OpenDatabase (dbName)[/code]

onde, no caso, txtXXXX ou lstXXXX seriam os nomes dos objetos de acordo com seus parametros (exemplo, lstDSN é o nome do ListBox de onde você vai selecionar o DSN).

Link para o comentário
Compartilhar em outros sites

  • 0

Olá kuroi fiz um pequeno teste, parece que deu certo :ph34r: , ficou assim:

Sub Main 

Nomeop= InputBox("Salvar Como?","Nome do Arquivo","Rel-",20,30) 

dbName = Client.UniqueFileName (txtNomeop.Text)
Client.ImportExcelSheetEx "E:\1-amanda\filmes.xls", "Plan1", TRUE, FALSE, dbName

End Sub

O arquivo foi salvo com o nome Rel-...

Mais tarde vou abranger mais opções do formulário, obrigado pela ajuda ;) .

beijos.

Link para o comentário
Compartilhar em outros sites

  • 0

o script abaixo apresentou erro na linha 15 (" & Dlg1.EditBox_2 ") nome do arquivos de macro inválido

especifico na .EditBox_2 o caminho do arquivo E:\amanda\filmes.xls mas ao executar dá erro na linha

Client.ImportExcelSheetEx " & Dlg1.EditBox_2 ", "Plan1", TRUE, FALSE, dbName

será que digitei algo errado ou tá faltando alguma informação no script

Sub Main 

Begin Dialog MyDialog 62,50, 200, 92, "Dialog One" 
TextBox 72,8,112,12, .EditBox_1 
Text 4,8,60,8, "Salvar Como:" 
TextBox 72,24,112,12, .EditBox_2 
Text 4,28,60,8, "Caminho:" 
OKButton 4,44,64,16 
End Dialog 

Dim Dlg1 As MyDialog 
Button = Dialog (Dlg1) 

dbName = Client.UniqueFileName (Dlg1.EditBox_1)
Client.ImportExcelSheetEx " & Dlg1.EditBox_2 ", "Plan1", TRUE, FALSE, dbName
Set db = Client.OpenDatabase (dbName)

End Sub

Link para o comentário
Compartilhar em outros sites

  • 0

é porque você pos o nome do textbox entre aspas, ai ele ta passando a string " & Dlg1.EditBox_2 " como parametro e não o que você digitou la. tenta assim ó:

Client.ImportExcelSheetEx Dlg1.EditBox_2, "Plan1", TRUE, FALSE, dbName
ou
Client.ImportExcelSheetEx Dlg1.EditBox_2.Text, "Plan1", TRUE, FALSE, dbName

e veja se funciona.

Link para o comentário
Compartilhar em outros sites

  • 0

olha, não conheco esse livro não, mas posso te dizer q o visual basic 2005 na verdade é a ultima das versoes do Visual Basic .NET, q é uma linguagem diferente do Visual Basic comum.

ou seja, essas macros q você usa no seu software são baseados no Visual Basic classico, apesar de q a sintaxe entre os dois é muito parecida, o Visual Basic .NET é compativel com a tecnologia .NET e foi feita pra trabalahr com os seus recursos e acessar suas bibliotecas.

de uma olhada nesse tópico aqui: http://scriptbrasil.com.br/forum/index.php?showtopic=104831

bom, mas eu recomendaria sim a qualquer programador q estudasse .NET. apesar q, em lugar do Visual Basic, eu recomendaria o C#. Mas se você ta precisando ou tem a intencao de estudar o Visual Basic classico, saiba então q o 2005 é outra coisa.

não tenho livros, nem nada pra recomendar. como aprendi Visual Basic na escola não conheco materiais pra iniciantes (já q nunca usei nenhum), mas sei q nesse site aqui http://www.macoratti.net ele tem varios tutoriais bem detalhados q ensinam varias coisas. e isso junto com uma apostila de nivel basico (q você pode encontrar facil pra baxar por ai) pode ser o suficiente pra se aprender bastante sobre a linguagem sem ter q gastar dinheiro comprando livros. mas você q sabe ae.

Link para o comentário
Compartilhar em outros sites

  • 0

nossa kuroi, meu chefe mandou comprar uns livros de visual 2005 prá galera aqui :lol: , será que o programa suporta os scripts gerados pelo vb2005:

"IDEAScript is an object oriented programming language consistent with Microsoft's Visual Basic for Applications™ (VBA) and it is a similar to LotusScript™"

o que seria esse VB for applications? Teria algum teste que eu possa aplicar para testar a compatibilidade?

Link para o comentário
Compartilhar em outros sites

  • 0

hum, pode mandar devolver os livros então ahah.

a definicao de vba você encontra aqui ó: http://pt.wikipedia.org/wiki/Visual_Basic_for_Applications

o q acontece é q o vba tb não é o visual basic. o vba é só um recurso q tem em varios softwares (principalmente no office) pra você implementar macros, ou seja, programar acoes dentro do software. e o vba usa sintaxe de visual basic e o modo de programar é exatamente igual.

pra trabalhar com vba em geral não faz mta diferenca entre estudar um livro de vba ou um livro de visual basic, já q as diferencas entre o vba e o visual basic dependem do software em q você trabalha. como o vba em sua gde maioria é usado no office, estudar vba normalmente significa estudar vba para office, no caso ai sim você daria uma atencao especial aos recursos do proprio vba.

agora no caso, o visual basic .net é uma outra linguagem baseada em visual basic. realmente, a sintaxe é praticamente igual, o modo de trabalhar em windows application é o mesmo, mas as diferencas são muito gdes, já q o .net é orientado a objeto e trabalha em conjunto com o .net framework.

agora no caso do seu software, acho q dificilmente estudar visual basic 2005 pode te ajudar tanto quanto estudar o visual basic classico. sei q a microsoft tem agora um esquema de Microsoft Visual Studio Tools For Office. acredito q é uma forma de programar em .net para o office (acho q so funciona no 2003), tb baseado no .net framework, semelhante ao vba, mas sendo uma coisa diferente, uma tecnologia nova. e acredito q no momento, isso esteja somente dentro do office, e muito possivelmente, não vai se expandir tão facilmente, já q a programacao em .net não é uma coisa assim tão pratica, já q há a necessidade do framework. talvez quando o windows vista comecar a ser popularizado...

agora tb não tem como falar se o seu software tem compatibilidade com o visual basic 2005. porque tipo, o vba é só programacao baseado em visual basic. agora o 2005 tb é, só q se programa de modo diferente.

alias, fora q você disse q ele trabalha com LotusScript, q pelo q ouvi é uma linguagem praticamente identica ao visual basic.

se você pegar um livro de visual studio 2005, o cara provavelmente vai focar você nos recursos do .net framework, possivelmente em conceitos de orientacao a objeto e provalmente tudo direcionado pra programacao em windows application ou asp.net.

você pode ate ter conceitos do visual basic original, como sintaxe e tipos de variaveis e etc.

mas os objetos, classes e etc usadas no 2005 são totalmente diferentes do visual basic classico.

acredito q se for pra aprender vba estudando o visual 2005, você pode muito bem aprender vba só com exemplos e tutoriais desses de internet mesmo.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá kuroi, boa tarde...

bem..., mandar devolver os livros nem pensar :o (rss), fica como investimento, iremos testar a compatibilidade do programa com o vb 2005 com calma (emitimos um help ao suporte, vamos aguardar...).

de qualquer forma o seu ponto de vista acima deu-me o seguinte alerta, que o estudo do vb 2005 certamente pode levar o foco do nosso objetivo (que é alinhar os scripts do vb ao soft que utilizamos) para um conhecimento não aplicável.

comecei os estudos B) , alias, o site do macoratti é muito recheado, ando mastigando..., já estamos desenvolvendo algumas coisas...porém estou com um dúvida terrível :( (relutei em postar mais um dúvida) que é a seguinte,

no seu post # 7 você diz

"é porque você pos o nome do textbox entre aspas, ai ele ta passando a string..."

entendi, retirei as aspas, funcionou certinho, porém para o Client.ImportODBCFile se eu retirar as aspas para o DSN (até fecha aspas) e o SELECT (até fecha aspas) para vincular com o seu respectivo Dlg1.EditBox dá erro, o script que roda legal é esse:

Client.ImportODBCFile "A", dbName, FALSE, ";DSN=HER;UID=auditoria;PWD=****;SERVER=90.98.87.10;", "select * from fornecedor_conta"
já o que eu fiz a adptação (que gera o erro é o seguinte):
Client.ImportODBCFile "A", dbName, FALSE,;DSN=Dlg1.EditBox_2;UID=Dlg1.EditBox_3;PWD=Dlg1.EditBox_4;SERVER=Dlg1.EditBox_5;, Dlg1.EditBox_1

mais uma vez agradecida... :)

Link para o comentário
Compartilhar em outros sites

  • 0

Neste caso você deve usar o operador & para concatenar (juntar) strings. No seu caso seria:

Client.ImportODBCFile "A", dbName, FALSE, ";DSN=" & Dlg1.EditBox_2.Text & ";UID=" & Dlg1.EditBox_3.Text & ";PWD=" & Dlg1.EditBox_4.Text & ";SERVER=" & Dlg1.EditBox_5.Text & ";", Dlg1.EditBox_1.Text

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Oi Graymalkin, havia entendido o motivo do .Text, tb concordo que o script fica mais claro, mas o programa que "rodo esses scripts não aceitou o .Text.

pessoal nova dúvida, fiz o form tá meio tosco :blink: mas achei legal :P , queria que no form só aparecesse um combox, no caso o combox do DSN, e os outros campos fosse selecionado automaticamente, pois ao escolher o DSN os outros campos seriam selecionados de acordo do o vinculo do DSN...

DSN

____

HER -> usuario1 -> senha-user1 -> 10.10.10.19

HER-OLD -> usuario2 -> senha-user2 -> 10.10.10.168

DEFSAUD -> usuario2 -> senha-user3 -> 10.10.10.19

ou seja, como há uma vinculação entre os campos, tinha como eu selecionar o DSN e os outros valores serem preenchidos no UID, PWD, SERVER, o select (combobox4) automaticamente e diretamente no script sem precisar vizualizar no form?

outra coisa, ando pensando em criar um grid (somente umas 10 linhas) para visualizar a minha pesquisa SQL antes da importação, tem como?

Dim MyList2$()
Dim MyList1$()
Dim MyList3$()
Dim MyList4$()

Begin Dialog BoxSample 19,0,192,180,"List Box, Combo Box, and Drop-Down List Box"
  OKButton 110,162,35,11
  ComboBox 7,74,54,30, MyList2$(), .CmboBox2
  Text 7,64,44,8, "usuário", .Text3
  TextBox 7,155,72,12, .TextBox1
  Text 7,142,37,8, "salvar como", .Text6
  Text 7,3,40,9, "dsn", .Text1
  ComboBox 5,13,42,40, MyList1$(), .ComboBox1
  Text 7,113,40,7, "SQL", .Text5
  TextBox 7,124,162,12, .TextBox2
  Text 87,64,40,9, "senha", .Text4
  Text 65,2,40,9, "servidor", .Text2
  ComboBox 84,74,42,40, MyList3$(), .ComboBox3
  ComboBox 65,13,104,30, MyList4$(), .ComboBox4
End Dialog
Sub Main

ReDim MyList1$ (2)
MyList1 (0) = "HER"
MyList1 (1) = "HER-OLD"
MyList1 (2) = "DEFSAUD" 

ReDim MyList2$ (1)
MyList2 (0) = "usuario1"
MyList2 (1) = "usuario2"

ReDim MyList3$ (2)
MyList3 (0) = "senha-user1"
MyList3 (1) = "senha-user2"
MyList3 (2) = "senha-user3" 

ReDim MyList4$ (1)
MyList4 (0) = "10.10.10.19"
MyList4 (1) = "10.10.10.168"

Dim Dlg1 As BoxSample
Button = Dialog ( Dlg1 )

dbName = Client.UniqueFileName(Dlg1.TextBox1)
Client.ImportODBCFile "A", dbName, FALSE, ";DSN=" & Dlg1.ComboBox1 & ";UID=" & Dlg1.CmboBox2 & ";PWD=" & Dlg1.ComboBox3 & ";SERVER=" & Dlg1.ComboBox4 & ";", Dlg1.TextBox2
Set db = Client.OpenDatabase (dbName)

End Sub

Editado por amanda_leite
Link para o comentário
Compartilhar em outros sites

  • 0
ei pessoal nem uma luzinha para o grid...?

a é q ai fica dificil, já q a gente não conhece esse software q você usa. pelo q eu entendi ele não tem uma parte visual, tipo não tem UserForm nem nd do genero. tipo você não tem o objeto do grid pra adicionar e fazer um tipo de um desenho do formulario, ou tem??

pelo q eu entendi você teria q adicionar o grid via codigo no dialog box, seria isso??

Link para o comentário
Compartilhar em outros sites

  • 0

imagem1.JPG

imagem2.JPG

é isso mesmo:

"pelo q eu entendi você teria q adicionar o grid via codigo no dialog box, seria isso??"

O grid tem não (por isso teria que digitar o codigo), acho, a ajuda que tava precisando era do grid via VB6 mesmo...,de qualquer forma já peguei o material bom, vou pesquisar,

valeu.

Editado por amanda_leite
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...