PREGUNTAS CONTESTADAS - Visual Basic

 Hay un total de 3030 Preguntas.<<  >> 

    Pregunta:  2120 - USAR EL DBGRID SIN EL DATA CONTROL
Autor:  Jesus Cordoba
Hola compañeros espero que estén muy bien. Mi pregunta es la siguiente:

Como puedo enviar un datasource a una variable de objeto ya sea de tipo recordset o de tipo Querydef
para luego cargar ese origen de datos en un DBgrid?. No quiero utilizar el DataControl.

Gracias.
  Respuesta:  Pedro Valencia
Apreciado amigo,
Si estas trabajando en DAO, el control DBGrid, no permite en tiempo de ejecucion asignarle la propiedad DATASOURCE, cosa contraria si lo haces con ADO.

Un saludo
  Respuesta:  victor lara
lo que puedes hacer es declarar una variaable objeto recordset, esto se hace igual que cuando se crea una (variable) para abrir una base de datos, luego se trabaja igual que si se estuviera haciendo con un control data.

Ej: set db as database
set rs as recodset
set sql as querydef

sql="select * tabla"
sql.refresh
dbgrid1.datasource=sql

en todo caso cualquier consulta mes escribes porque no me acuerdo mucho de la sintaxis

    Pregunta:  2125 - CAPTURAR IMAGEN COMPLETA DE LA PANTALLA
Autor:  Rodrigo López
Como puedo capturar la imagen completa de la pantalla (escritorio, venranas, barra de tareas... todo)?
Hay alguna función del Visual Basic o tal vez una DLL?
  Respuesta:  Juan Fco. J. L.
He encontrado la formde acerlo usando API´s. Como usa modulos y eso si alguien quiere el proyecto se lo paso por email sin ningun problema.
  Respuesta:  J. 3duardo Nuño Solís
Podemos simular la pulsación de "Impr.Pant" (copiar la pantalla en el portapapeles) o de "Ctrl"+"Impr.Pant" (copiar la ventana activa al portapapeles) mediante la función del API keybd_event, que simula pulsaciones de teclas.

Declaramos la función :

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Para capturar toda la pantalla : keybd_event vbKeySnapshot, 1, 0&, 0&
Para capturar la ventana activa : keybd_event vbKeySnapshot, 0, 0&, 0&

    Pregunta:  2130 - REDONDEO DE UN NUMERO EN VISUAL BASIC PARA APLICACIONES
Autor:  Gregorio Cobá Gala
En la hoja de cálculo de Excel´97 el redondeo ( Redondear( , ) )
funciona perfectamente pero en las Macros de Visual Basic para Excel no puedo usar lo mísmo ni su equivalente en inglés (ROUND) por lo que necesito una función para redondear cantidades desde VIsual Basic para excel o si alguién sabe como lo resuelvo se lo agradeceré infinitamente.
  Respuesta:  Luis Contreras
Es curioso que tengas este problema, pero la solución es similar a:

Dato = Round((3562 / 7) ,2)

= 508.86

o también:

Dato = Round(Dato,2)

Vi una respuesta mediante FORMAT, pero no es apropiado por cuanto te soluciona el problema en cuanto a presentación, pero internamente NO.

Estoy a tu orden para problemas de EXCEL bajo VBA.
  Respuesta:  Alex Mauri
La función FORMAT$() redondea perfectamente un numero a tantos decimales como le indiques en la mascara.
ej: format$(85.368, "#0.00") --> 85.37
Yo también utilizo plantillas de Excel para hacer listados desde Visual, y funciona perfectamente. Espero que mi respuesta te haya ayudado. Hasta luego.

    Pregunta:  2146 - ABRIR ARCHIVOS ADJUNTOS UTILIZANDO CONTROLES MAPI
Autor:  alice queen
He enviar y recibir archivos adjuntos en el correo, pero el problema que tengo, es que no se como abrir los archivos recibidos en el correo.
Desde ya muchas gracias.
  Respuesta:  José Miguel Diaz
Aunque no explicas muy bien hasta que punto has llegado, asumo que al menos sabrás como enviar los mensajes adjuntos y me imagino que sabras determinar los nombres de estos mensajes que te acaban de llegar (si no es asim mándame un correo y te doy una explicación mas específica), bueno si sabes como hacerlo, entonces coloca los nombres de los archivos en una lista y en evento doble clic de la misma coloca
For i = 0 To MAPIMessages1.AttachmentCount - 1
MAPIMessages1.AttachmentIndex = i
If MAPIMessages1.AttachmentPathName = List2.Text Then
J = 1
Exit For
End If
Next i

If J = 1 Then
´ se definen variables para copiar el attachments a un directorio en específico
´ que no sea temporal (en caso que se requiera para su procesamiento)
ArchOrigen = MAPIMessages1.AttachmentPathName
´ Se define el nombre del archivo de origen. ArchDestino = App.Path & "\" & MAPIMessages1.AttachmentName
´ Se define el nombre del archivo de origen.
´ copia el archivo (esto es opcional en caso de que lo quieras guardar en un directorio específico)
FileCopy ArchOrigen, ArchDestino
Dim eje
ArchOrigen = UCase$(ArchOrigen)
´ Se determina si el archivo es ejecutable por sí solo o si necesita
´ de la sentencia Start para ejecutarce
If Right(ArchOrigen, 3) = "EXE" Then
eje = Shell(ArchOrigen, 1)
Else
Dim ret As Long
ret = Shell("start " & ArchOrigen)
End If
Else
MsgBox "Existen problemas de Ubicación del Archivo", vbCritical + vbOKOnly
End If

Espero que te funcione, de no ser asi, Escríbeme

    Pregunta:  2157 - JUSTIFICAR TEXTBOX EN C++ BUILDER Y VISUAL BASIC
Autor:  José Manuel Rodríguez Martínez
Me gustaría saber si existe algún método o instrucción para justificar el texto introducido en un TextBox, en C++ Builder y Visual Basic, sobre todo dirigido a la gestión de bases de datos.
  Respuesta:  Marcelo Sanhueza
Viejo, Prueba con la propiedad Align yo tuve un problema similar al justificar un textbox en la version VB4, pero en la version VB6 la justifica en donde tu quieras.
  Respuesta:  HORACIO ACOSTA
Prueba con las propiedades ´align´ del textbox o ´format´ para el mísmo si estas usando una máscara para fechas o cantidades monetarias.

    Pregunta:  2161 - REALIZAR FILTROS EN UN MSFLEXGRID
Autor:  Lupita Alvarez
ESTOY UTILIZANDO MSFLEXGRID EN VISUAL BASIC 6 PARA MOSTRAR LOS DATOS DE UN BASE DE DATOS, PERO TENGO UN PEQUEÑO PROBLEMITA, QUIERO REALIZAR FILTROS SOBRE LOS DATOS DE ESE MISMO MSFLEXGRID. ALGUIEN PODRIA INDICARME COMO HACERLO. MUCHISIMAS GRACIAS DE ANTEMANO
  Respuesta:  Gerardo A. Mendoza
No se si esto te sirva de algo:

#5. Filtros subsecuentes
Mayo 19 de 1999

Aplicar Filtros con ADO es una de las novedades que me gusto. No es necesario reconstruir un Recordset para filtrar varias veces. P.e Tengo un Recorset con 12 registros, deseo aquellos registros donde el campo Field1 = "Value1" (String), digamos que son 4 registros:

rs.Filter = "[Field1] = ´Value1´"
´// rs.RecordCound retornará 4

Luego deseo obtener aquellos que son direrentes a Value1:

rs.Filter = "[Field1] <> ´Value1´"
´// rs.RecordCound retornará 8

Es decir, no es necesario ejecutar un rs.Open o Requery para filtrar el Recordset. Para eliminar el filtro, se ejecuta rs.Filter = adFilterNone

Te recomiendo que visites este sitio es muy bueno:
www.eidos.es/VeXPERT

    Pregunta:  2162 - PARÁMETROS OPCIONALES EN VB6? ¿QUE PASÓ?
Autor:  Rodrigo López
Tengo una aplicacion hecha en VB5 que usa funciones con parámetros opcionales. Todo funcionaba bien hasta que se me ocurrió instalar VB6. Abrí mi aplicación desde allí y.... sorpresa!!!! VB6 trata los parámetros opcionales igual que cualquier otro parámetro (la función IsMissing devuelve siempre False, aunque no haya pasado ningún parámetro por el que está declarado como opcional), con un valor por omisión, dependiendo del tipo de dato, si es que no paso ningún parámetro.
Gracias.
  Respuesta:  Alberto Gil
Para poder detectar si un parámetro Opcional se pasa o no a una función el parametro debe declararse de la siguiente manera:

Optional ParamName as Variant

No dandole un valor por defecto ya que si se le da un valor por defecto isMissing(ParamName) es siempre False.

    Pregunta:  2165 - INDICES DE LAS TABLAS ACCESS EN VB6
Autor:  Manuel R. Bercian
Hola Amigos, tengo una Bases de datos Access con una Tabla llamada Productos. Esta tabla tiene indices por Codigo del Producto, Descripcion, Color, Medidas, y otros campos para que podamos encontrar un producto rapidamente, como podria hacer para halar todos los nombres de los indices de esa tabla e incluirlos en un ComboBox para que despues el operador escoja como quiere ordenados esos productos. Ahora solo para aclarar mas la pregunta ya haciendo todo esto, cuando ponga otro campo como indice, automaticamente cuando corra mi aplicacion en Visual Basic ya este agregado esa opcion en el ComboBox. Gracias...
  Respuesta:  HORACIO ACOSTA
Trata de utilizar ´DbCombo´, a cambio de ´combo´
así puedes listar los campos de una base de datos, seleccionar uno de ellos y gracias a instrucciones SQL puedes ordenarlos por el criterio escogido (ORDER BY), además al agregar un indice en tu base, si utilizas las propiedades ListField y RowSource del DbCombo, éstos indices se agrgarán automáticamente.

    Pregunta:  2175 - REDONDEAR UN NUMERO EN VB PARA APLICACIONES
Autor:  Xavi
Como puedo redondear un numero en Visual Basic para aplicaciones.
Gracias de antemano.
  Respuesta:  Marco Villacres
El vb tiene una funcion round en donde se pone el numero a redondear y el numero de decimales que quieres que contenga
  Respuesta:  Wirley Rivas Garcia
La Rutina que aqui te coloco redonde en base a 0 y 5
Ejemplo: 114,2 lo lleva a 115, y 117,8 lo lleva a 120

Public Function Redondear(xNum As Currency) As Currency
Dim aux
Dim nUlt
Dim sw As Boolean
Dim i
Dim x
xNum = Int(xNum)
aux = Trim(Str(xNum))
If (xNum > 0) And (Len(aux) > 1) Then
nUlt = Val(Mid(aux, Len(aux), 1))
If (nUlt < 5) And (nUlt > 0) Then
aux = Mid(aux, 1, Len(aux) - 1) & "5"
ElseIf (nUlt > 5) And (nUlt <= 9) Then
aux = Mid(aux, 1, Len(aux) - 1) & "0"
sw = False
i = Len(aux) - 1
Do While (i > 0) And (Not sw)
x = Val(Mid(aux, i, 1))
If x < 9 Then
x = x + 1
aux = Mid(aux, 1, i - 1) & Trim(Str(x)) & Mid(aux, i + 1, Len(aux))
sw = True
ElseIf (x = 9) And (i > 1) Then
aux = Mid(aux, 1, i - 1) & "0" & Mid(aux, i + 1, Len(aux))
i = i - 1
ElseIf (x = 9) And (i = 1) Then
x = x + 1
aux = Mid(aux, 1, i - 1) & Trim(Str(x)) & Mid(aux, i + 1, Len(aux))
i = i - 1
End If
Loop
End If
ElseIf (xNum > 0) And (Len(aux) = 1) Then
aux = IIf(xNum < 6, 5, 10)
End If
Redondear = Val(Trim(aux))
End Function
  Respuesta:  Ces
Utilice la siguiente rutina para redondear un número. Le devolverá el número redondeado en formato Double con tantos decimales como indique en el parámetro ´intCntDec´.
Public Function Redondear (dblnToR As Double,_
Optional intCntDec As Integer) As Double

Dim dblPot As Double
Dim dblF As Double

If dblnToR < 0 Then dblF = -0.5 Else: dblF = 0.5
dblPot = 10 ^ intCntDec
Redondear = Fix(dblnToR * dblPot * (1 + 1E-16) + dblF) / dblPot

End Function

Esta otra función es la que uso yo:
Function Redondeo(i As Variant, Optional n As Variant) As Variant
´realiza el redondeo de la función de manera similar a la función Cnlg
´con la salvedad de que si es .5 lo aproxima al entero superior
´el argumento opcional n determina el nº de decimales sobre los que se va
´a redondear
i = i * 10 ^ n
´control de posibles problemas dedesbordamiento con la función Clng
While i > 2000000000
i = i / 10
n = n - 1
Wend

If i - Fix(i) = 0.5 Then
Redondeo = Fix(i) + 1
Else
Redondeo = CLng(i)
End If

If Not IsMissing(n) Then Redondeo = Redondeo / 10 ^ n
End Function
  Respuesta:  Gregorio Cobá
por si te sirve, te mando un versión de una nueva función para redóndear con visual basic para aplicaciones

Function ARound(valNum As Double, decimals As Integer)

Dim strFormat As String ´ Formato del número

If decimals < 0 Then ´ Si es un valor negativo, lo convierte a positivo para evitar errores
decimals = Abs(decimals)
End If

If decimals > 8 Then ´ Si son mas de 8 decimales lo fija en 8
decimals = 8
End If

If decimals = 0 Then ´ Si no hay decimales, el formato es para un valor entero
strFormat = "#0"
Else
strFormat = "#0." + String(decimals, "0") ´ crea el formato de acuerdo a los decimales
End If

ARound = Val(Format$(valNum, strFormat)) ´ Redondea

End Function

Espero te sirva. Saludos.

    Pregunta:  2181 - CONEXION CON NETSCAPE
Autor:  Armando Jose Fermin Fermin
Estimados Srs, estoy tratando de crear un objeto que me permit abrir el broser de netscape y enviarle un URL. Yo lo hice con internet explorer utilizando el siguiente codigo

Sub LoadUrl(URL As String)

Dim Browser As Object
On Error GoTo errores
Set Browser = CreateObject("InternetExplorer.Application")
Browser.navigate "http://" + URL
Browser.Visible = True
errores:
Set Browser = Nothing

End Sub
  Respuesta:  Francisco J. Alanis
Ya trataste usando el comando Shell??
Como en
Shell("C:\Archivos de Programa\Netscape\Navigator.exe http:\\www.algo.com",algun_modo)

(esto es como si se corriera el Navigator dandole como parametro de entrada la direccion deseada)

No estoy seguro de haber entendido bien tu pregunta pero si te gusta la idea, hechame un email y vemos que onda.

|<  <<  35 36 37 38 39 40 41 42 43 44 45  >>  >|