PREGUNTAS CONTESTADAS - Visual Basic

 Hay un total de 3030 Preguntas.<<  >> 

    Pregunta:  65562 - COMO ABRIR PDF DESDE BOTON VISUAL BASIC
Autor:  Ignacio Sánchez
Hola tengo montada una aplicación con la macro del editor de Visual Basic que viene en Excel y no consigo que me abra desde mi formulario de VB un archivo formato PDF. Pongo esto:

Private Sub Command1_Click()

ShellExecute Me.hwnd, "open", "C:Archivos de programaManual.pdf", "", "", 4

End Sub

Con códigos parecidos para archivos EXCEL y WORD si me deja abrirlos, pero con el PDF me da error.

Desde el Visual Basic 6.0 si me deja abrir todos los archivos de distintos formatos incluidos el PDF.

Gracias de antemano ;)
  Respuesta:  Ignacio Sánchez
Hola Gonzalo.

He utilizado tu código pero me da salta un error de compilación diciendo que el argumento no es opcional.

He puesto:

ShellExecute hwnd, "Open", ("C:Archivos de programaManual.pdf"), "", 1

Muchas gracias por contestar.

Saludos.
  Respuesta:  Gonzalo Quintana
Hola Ignacio:

Yo utilizo el sigueinte código desde un botón puesto en una hoja de excel y me funciona a la perfección:

Private Declare Function ShellExecute _
Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Private Sub CommandButton1_Click()
ShellExecute hwnd, "Open", (la ruta de tu archivo entre "") , "", 1
End Sub

Espero te sirva...
Saludos,

Gonzalo

    Pregunta:  65685 - IPCONFIG AUTOMATICO
Autor:  Ulises R.M
Saludos, Me dedico a reparar equipo de computo y en ocaciones me topo con fallas en la red y debo estar presione ipconfig varias veces entre otros comandos mi, duda es como puedo usar basic para ejecutar comandos de ms-DOS, y leer esos datos como texto y reusarlo para otra tarea
ejemplo:

Ipconfig
gateway 192.168.1.254
ip 192.168.1.2
netmask 254.254.254.0
leer gateway
ping 192.168.1.254

mas o menos asi :D gracias!!
  Respuesta:  Gonzalo Quintana
Espero que esto te sirva, está hecho desde VBA (excel) en un form.

Option Explicit


'Un textbox multilinea : txt_resultado
'Un TextBox : txt_Comando
'Un commandbutton
'La referencia a Windows Script Host Object Model
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Private Sub CommandButton1_Click()

txt_resultado.Text = ""
txt_resultado.Text = ejecutar_Dos("ipconfig /all")

End Sub

Private Sub UserForm_Activate()

CommandButton1.Caption = " Ejecutar DOS "
txt_Comando.Text = "dir c:windowssystem32*.*"

End Sub

Function ejecutar_Dos(Comando As String) As String

Dim oShell As WshShell
Dim oExec As WshExec
Dim ret As String

Set oShell = New WshShell
DoEvents

' ejecutar el comando
Set oExec = oShell.Exec("%comspec% /c " & Comando)
ret = oExec.StdOut.ReadAll()

' retornar la salida y devolverla a la función
ejecutar_Dos = Replace(ret, Chr(10), vbNewLine)

DoEvents
'Me.SetFocus

End Function

'Ejemplos
'txt_resultado.Text = ejecutar_Dos("ping www.google.com.ar")
'txt_resultado.Text = ejecutar_Dos(Trim(txt_Comando))
'txt_resultado.Text = ejecutar_Dos("ipconfig help")

Saludos,

    Pregunta:  65815 - PRIMERA LETRA DE CADA PALABRAS
Autor:  Adolfo Enrique Diaz
De una caja de texto con textos de tres palabras Ej: Clinica San Luis , necesita generar una cadena que sólo tome las primeras letras da cada palabra. Ejemplo : CSL.

Apliqué ésta pero sólo toma la primera letra de la primera palabra.

Dim Process As String

Process = txtInstituto.Text
Text14.Text = (Left(process, 1))
End Sub

Si cambias el número por 2, obtendrás las dos primeras letras de la primera palabras.
Cómo lograrlo para la segunda y tercera palabras? Gracias por su tiempo.
  Respuesta:  Adolfo Enrique Diaz
Te agradezco tu buena intención pero me aparece error.

Veamos, en text1.text tengo la palabra Clinica San Luis.
Quiero generar un string que copie de Text1.text a Text2.text solamente las letras CSL (la primera letra de cada palabra), para qué? Para establecer una codificación de cada registro.
Entonces, de acuerdo a tu orientación tengo:

dim arr() as string
arr=split(text1.text," ")
2.- Recorre el array y coge cada uno de las primeras letras:
dim letras as string

for each text1.text en arr
str=str & Left(text1.text, 1)
next valor

No me funciona, me dice que hay error de compilación. Por favor revísame qué tengo mal.Te agradezco infinitamente.
  Respuesta:  xve
Hola Adolfo, hace tiempo que he perdido el contanto con VB, pero los pasos serian estos:
1.- Separa la cadena por los espacios:
dim arr() as string

arr=split(tuCadena," ")

2.- Recorre el array y coge cada uno de las primeras letras:
dim letas as string
for each valor en arr

str=str & Left(valor, 1)
next valor

Espero que te sirva

    Pregunta:  65966 - BLOQUEO POR FECHA
Autor:  Artemi Rosich
¿ Alguien puede decirme que tengo mal en el Código siguiente ? :

'Dim MiFecha As String
MiFecha = "29-12-2012"
If MiFecha <= Format(Now, "dd-mm-yyyy") Then
MsgBox " La fecha de autorización del ejecutable se ha extinguido", 0 + 64, " Atención :" & " " & USUARIO
End
End If

Muchas gracias.
  Respuesta:  Carlos Mayorga
Lo que tienes malo es el concepto, primero que nada las fechas son enteros y las horas son decimales de esos enteros, asi que es mas facil convertirlos a enteros.

Dim MiFecha As String
MiFecha = "20121229"
If Cint(MiFecha) <= Cint(Format(Now, "yyyyMMdd")) Then
MsgBox " La fecha de autorización del ejecutable se ha extinguido", 0 + 64, " Atención :" & " " & USUARIO
End
End If

    Pregunta:  66039 - CLICLO FOR LLENANDO REGISTROS EN UN DATA GRID EN VB 6.0
Autor:  carlos fernando tellez
hola como estas, estoy haciendo una aplicacion cliente servidor en vb 6.0 el servidor manda los registros para colocarlos en un data grid, con el slip separa las columnas y los registros, en el primer for agrego las columnas hace todo bien en el segundo for agregas los datos la sentencia q tengo del for es: For x = 1 To UBound(lineas) - 1 si lo bugeo y coloco el cursos en UBound m dice q son 49 registros y tengo q agregar 1106 registros , de echo hace el cliclo agrega los 49 registros se sale del ciclo los agrega en el data grid se va en el end sub y vulve a subir otra vez a kerer seperar todo de nuevo me pregunto yo si en vez de colocarle ubound seria algo mas grande para q sean los 1106 o mas de 1106 espero y m ayuden les pongo el codigo por si = ustedes lo kieren ocupar y a si almacenar datos en un data grid.

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

Winsock1.GetData Datos 'Guardo el resultado

lineas = Split(Datos, vbCrLf) 'Lo convierto en un Array
Columnas = Split(lineas(0), ",") 'Consigo un array con los nombre de las columnas

rs.CursorLocation = adUseClient
For x = 0 To UBound(Columnas)

rs.Fields.Append Columnas(x), adVarChar, 100, adFldIsNullable
Next x
rs.Open , , adOpenStatic, adLockBatchOptimistic


'Agrego las Rows con un for
For x = 1 To UBound(lineas) - 1

renglon = Split(lineas(x), ",")

rs.AddNew Array(Columnas(0), Columnas(1), Columnas(2), Columnas(3), Columnas(4), Columnas(5), Columnas(6), Columnas(7), Columnas(8), Columnas(9), Columnas(10), Columnas(11), Columnas(12), Columnas(13), Columnas(14)), _
Array(renglon(0), renglon(1), renglon(2), renglon(3), renglon(4), renglon(5), renglon(6), renglon(7), renglon(8), renglon(9), renglon(10), renglon(11), renglon(12), renglon(13), renglon(14)) 'Cargo mi Res con los datos recibidos.
Next x
Set DataGrid1.DataSource = rs

End Sub
  Respuesta:  carlos diaz
Tienes que trabajar con 2 procesos uno en primer plano y otro en segeundo plano...

el problema está en la asincroia de los procesos..

    Pregunta:  66258 - VARIABLES LOCALES O GLOBALES
Autor:  Tomás Moro
Hola, una consulta de principiante, ¿en una aplicación que utiliza una base de datos access 2003 (multiusuario) con vb6, en donde tengo que hacer distintas consultas desde distintos formularios, conviene usar

Global cn As New ADODB.Connection
Global rs As New ADODB.Recordset
para todo el programa

o

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

En cada formulario

¿Que es lo correcto? Gracias.
  Respuesta:  Gonzalo Quintana
Tomás:
Te conviene usar:

Global cn As New ADODB.Connection
Global rs As New ADODB.Recordset

para todo el programa..

Dado que asi ocuparía menos memoria y sería más rápido la ejecución..

Saludos,

    Pregunta:  66660 - QUE DIA DE LA SEMANA EMPIEZA UN MES?
Autor:  David Rojas
Estimados, estoy haciendo una aplicación que muestra detalles de producción del personal, para esto implementé que me muestre un formulario tipo Calendario, en el cual en cada dia me muestra el detalle de su producción diaria, pero me he quedado pegado en el hecho de que necesito saber QUE DIA DE LA SEMANA EMPIEZA EL MES, osea si el 1 de Octubre fué Lunes o Martes o Jueves, ... Agradeceré cualquier ayuda al respecto... Gracias.!
  Respuesta:  Carlos Mayorga
en VB6 puedes utilizar WeekDay ó WeekDayName, o en su defecto utilizar DatePart.

    Pregunta:  66702 - CERRAR PROYECTO AL 3ER INTENTO. SENTENCIA: FOR
Autor:  Roberto
Pues bien, el problema que tengo es básicamente que no se usar bien la SENTENCIA FOR, y en esta ocasión debo emplear para que a la tercera vez que el usuario introduzca la contraseña aparezca un MsgBox "Contraseña errónea"

Este es el código que yo tengo (SOLO ME DEJA ERRAR UNA VEZ Y ME SACA DEL PROGRAMA)

Código:

Dim intentos As Integer


Private Sub Validar_Click()
If Text1 = "getready123" Then
intentos = 0
MsgBox "Contraseña correcta"
Form2.Show
Hide

Else

For intentos = intentos + 1 To 3
MsgBox "Contraseña errónea"
Text1 = ""
Text1.SetFocus
Exit For
Next
End

End If

End Sub

Nota:
Se debe usar .SetFocus
Programa creado en Visual Basic 6.0
  Respuesta:  Carlos Perez
Intentalo asi:

Private Sub Validar_Click()

For intentos = 1 To 3

If Text1 = "getready123" Then

MsgBox("Contraseña correcta")

Form2.Show()

Hide()

Exit For


Else

MsgBox("Contraseña errónea")

Text1 = ""

Text1.SetFocus()


End If

Next

End Sub



creo que solo te deja errar una vez porque le dices en el for que se salga inmediatamente, si le quitas el exit for tal vez funcione correctamente, pero creo que como yo te lo puse es mas eficiente!

Pruebalos :D

    Pregunta:  66917 - CORRER PROGRAMA DE VB 6.0 EN WINDOWS NUEVOS
Autor:  Blanca BS
Hola, mil gracias por su atención... hace varios años programé un sistema en vb 6.0. Tengo tiempo que no programo, pero el usuario quiere migrar a windows 2007 y el sistema no corre. No quisiera tener que volver a hacerlo, ya que he estado un tanto retirada de la programación. hay algo que pueda hacer para que funcione en windows 2007 mi programa?

De nuevo, gracias
  Respuesta:  Claudio
Hola Blanca, yo tengo sistemas hechos en VB6 y corren en XP, windows 7 y windows 8 de 32 y 64 bits, tendrias que ver en el codigo que parte no es compatible porque posiblemente con la modificacion de algunas lineas solucionas el problema

    Pregunta:  68031 - ANIMACION VISUAL BASIC 6.0
Autor:  sol magallon
Estoy buscando como manejar Visual Basic 6.0 por medio de la animación pero que sea en 3d y la verdad no sé cómo manejar este programa quiero saber si se puede una imagen 3d que se mueva o algún programa que sea compatible con vb6 y que sea creíble la imagen
  Respuesta:  carlos chacon
bueno mira la verdad es que visual basic es un lengueje de progrmacion que segun tengo entendido no es capas de realizar tal actividad, y si lo es no poseo ese conocimiento en tal caso me gustaria seguir de cerca esta pregunta ya que me intriga saber como se hacer

|<  <<  293 294 295 296 297 298 299 300 301 302 303  >>  >|