PREGUNTAS CONTESTADAS - Visual Basic

 Hay un total de 3030 Preguntas.<<  >> 

    Pregunta:  34210 - PROBLEMAS CON FECHAS CON ORACLE
Autor:  exis lagos
Estoy desarrollando una aplicación con Visual Basic 5 y Oracle 8.
El problema se produce cuando guardo una fecha esta se graba cambiando el día por el año (digito 13/05/2002 y me graba 02/05/2013), en otros casos cambia al grabar el día por el mes (digito 12/05/2002 y se graba 05/12/2002). Esto pasa sólo en algunos Pcs donde está la aplicación, no en todos (ya revicé la configuración regional y la fecha de setup y no pasa nada).
Agradecería las posibles pistas para solucionar este problema.

De antemano Gracias
  Respuesta:  MARCO SANTIS AZUA
Amigo:
No mencionas si usas un formato para ingresar la fecha, si no lo haces deberias ingresarla de la siguiente manera:

TO_DATE('29/04/2003', 'dd/mm/yyyy')

    Pregunta:  34249 - ¿COMO CREO UN PERMISO DESDE VISUAL EN WINDOWS NT?
Autor:  Luis Rincón
Necesito Terminar un programa que otorga permiso o clave de acceso a los estudiantes de una sala de informatica. se usa NT.
Necesito saber como creo un permiso de usuario atravez de visual basic en windows NT.
les Agradeceria mucho su ayuda?
  Respuesta:  FRANCISCO ZORRILLA
para crear un simple programita de acceso a una o varias maquinas primero: crear una base de datos centralizada o un servidor de base de datos en red o por internet con las demas maquinas
luego crea en la base de datos una tabla que tenga campos(usuario, contraseña, perfil, roll, o ulgun otro campo de interes), luego desde visual basic has un formulario donde preguntes por un usuario y una contraseña el la base de datos centralizada y si el usuario esta registrado le das acceso si no un error, reguerda que en las propiedades del formulario tienes que quitar las opciones de maximizar , minimizar y cerrar para que a juru tengan que introducir su usuario para poder ingresar

    Pregunta:  34250 - ISAM INSTALABLE
Autor:  oscar
Intento trabajar con .DBF, Y NO CONSIGO ACCEDER a las bases siempre me devuelve el siguiente error:
"No se puede encontrar el ISAM INSTALABLE"

Podeis decirme algo? Gracias.
  Respuesta:  Jose Teran
Lo que tines que hacer es lo Siguiente:
Cuando generes el instaldor con el asistente de empaquetado y distribución y te diga controles disponibles, incluye este " xbase: dbase5.0,dbaseIII etc.." seleccionalo y luego siguiente , eso es todo cualquier sugerencia enviala
  Respuesta:  Victor Edgar Cairo
Hola amigo:

Estuve revisando las preguntas sin responeder y creo que la solucion a tu problema es instalando todas las caracteristicas del Visual Fox pro,al instalar veras un boton Change Option,entonces revisa alli y veras algo que tenga ver con ISAM,prueba con esa variante

    Pregunta:  34255 - VISUAL BASIC 5.0 CON WINDOWS XP CONTROLES NO REGISTRADOS
Autor:  José Bueno
Tengo una aplicación que corre perfectamente en Windows XP pero al intentar realizar una modificación al fuente, me da un mensaje que me indica que los controles MaskEdit, DbGrid, MsFlexGrid, y los compnentes del COMCTL32 no se han registrado y por supuesto no los carga en el programa. Al tratar de hacer una nueva aplicación e intentar utilizar cualquiera de los componentes me dice que el componente no ha sido registrado.
1.- ¿ como registro el componente ? ---> Ya intenté con REGSVR32
  Respuesta:  SuNcO
Me paso el mismo problema, con nada se solucionaba incluso borrando manualmente las partes del registro donde se supone se registran

Cual fue la solucion ? Yo utilizo VB5, pero al instalar el VB6 todo se arreglo, asi que volvi a instalar el VB5 de nuevo y listo (todo un show)

Otra solucion una vez hace mucho fue reinstalar el Windows

    Pregunta:  34271 - MANEJO DE IMAGENES
Autor:  Cristian Arley Salas cano
Como puedo rotar una imagen en un picturebox
  Respuesta:  angel bueno
Rotar una imagen

El código que veremos a continuación sirve para rotar una imagen 90, 180 y 270 grados. Esta imagen puede estar contenida en cualquier objeto que tenga la propiedad hDC (formulario, picture, etc).
Se le pasan como parámetros el hDC del objeto que contiene la imagen, los grados a rotar, y las coordenadas del área que queremos rotar (en pixels).

Este código emplea Get y Set BitmapBits para rotar una imagen dentro de un hDC. Como usa intensamente matrices, se puede incrementar la velocidad de ejecución en el ejecutable compilado desactivando el chequeo de los límites de los arrays.

Pega este código en un módulo :

Ver Código

Y para usarlo, simplemente :

RotatePicture Me.hDC, amount180Degrees, 0, 0, 300, 300

He realizado algunas pruebas con picturebox y parece que tiene en cuenta los bordes, por lo que hay que restarle algunos pixels :

Codigo:
RotatePicture Picture1.hDC, amount180Degrees, 0, 0, (Picture1.Width / Screen.TwipsPerPixelX) - 4, (Picture1.Height / Screen.TwipsPerPixelY) - 4
  Respuesta:  Hector Shamir Perez
Hola Cristian,

Lo que quieres no es posible, para eso tendrías que utilizar otro control ActiveX. Los Image y PictureBox son solo para mostrar imagenes, con la diferencia que el Image puedes var la imagen de diferentes tamaños y el PictureBox funciona ademas como contenedor.

Te recomendaría buscar un control que haga lo que quieres.

Lamento no haberte sido util.

    Pregunta:  34272 - MANIPULACION DE IMAGENES
Autor:  Cristian Arley Salas cano
Como puedo rellenar una imagen en un picturebox con un color
  Respuesta:  Agustín Dávila
Supongo que te refieres a rellenar areas en un dibujo de un color. Para esto debes utilizar la Api de Windows: Floodfill. Te mostraré un ejemplo:

Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim v As Long, j(3) As Integer
j(0) = Int(Rnd * 256)
j(1) = Int(Rnd * 256)
j(2) = Int(Rnd * 256)
Form1.FillColor = RGB(j(0), j(1), j(2))
v = FloodFill(Form1.hdc, X, Y, 0)
End Sub

    Pregunta:  34313 - COMO SABER SI UN FORM ESTA ABIERTO
Autor:  José Franco
necesito saber si un form esta activo, porque en un boton llamo un form llamando consulta, pero si por error le doy 2 click al boton me da error porque el form ya fue llamado
  Respuesta:  SuNcO
Te tengo 2 posibles soluciones :

1.- Poner al inicio del procedimiento del boton el capturador de errores asi : On Error Resume Next

2.- Solo pon :
if consulta.visible = false then
load consulta
consulta.show 1
else
' Aqui entra si ya esta abierto
msgbox "Ya se abrio el formulario"
endif

    Pregunta:  34386 - COMO BLOQUEAR LA EJECUCIÓN DE UNA APLICACIÓN
Autor:  MIGUEL ANGEL TOVAR
Alguien sabe si exite una rutina o una función de la api de windows que me permita restringir la ejecuión de una aplicación en particular.

Gracias
  Respuesta:  Juan Carlos Zuñiga Rodriguez
Tal vez exista alguna API para hacer lo que quieres, otra forma de lograrlo es buscando la aplicacion y si esta abierta entonces cerrarla o bloquearla, esta funcion se utiliza para buscar aplicaciones abiertas:

La puedes usar asi:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Const IExplorer = "IEFrame"
resultado = FindWindow(IExplorer, vbNullString)

Este codigo busca la aplicacion de Internet Explorer y si se encuentra abierta devuelve como resultado la Hwnd.

Con esta otra funcion podrias bloquear la aplicacion encontrada:

Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long

EnableWindow resultado, False

Ademas, requieres saber el nombre de la clase de la aplicacion que quieres bloquear, aqui algunos ejemplos:

Const Word = "OpusApp"
Const Excel = "XLMAIN"
onst IExplorer = "IEFrame"
Const MSVBasic = "wndclass_desked_gsk"
Const NotePad = "Notepad"
Const Explore = "ExploreWClass"
Const Mipc = "CabinetWClass"
Const Msdos = "tty"

Espero esto te sirva de algo...

Saludos..

    Pregunta:  34402 - CAMBIO DE RESOLUCION DE PANTALLA EN WINXP
Autor:  Enrique García Polo
Desearía saber como puedo cambiar la resolucion de pantalla en Windows Xp, ya q con la api q usaba para cambiarla en el resto de los windows ya no funciona en Windows Xp, sólo consigo sacar las resoluciones disponibles pero no cambiarla.

Ruego ayuda urgente pues es para un trabajo y me queda poco tiempo,

Muchas Gracias!!!
  Respuesta:  SuNcO
Con este si me funciona :

Requieres :

1 check (nombre = chkBits)
1 command_button (nombre = command1)
2 label (nombres = label1(0) y label1(1))
1 list (nombre = list1)

' Option Explicit

Private Type tResol
Width As Long
Height As Long
Bits As Integer
End Type
Private Disponibles() As tResol

Private Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" _
(ByVal lpszDeviceName As Long, ByVal iModeNum As Long, _
lpDevMode As Any) As Boolean

Private Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" _
(lpDevMode As Any, ByVal dwflags As Long) As Long

Const CCDEVICENAME = 32
Const CCFORMNAME = 32
'Las declaraciones de estas constantes están en: Wingdi.h
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000

Private Type DEVMODE
dmDeviceName As String * CCDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer

dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer

dmFormName As String * CCFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type

Dim DevM As DEVMODE

Private Sub Form_Load()
'Mostrar las resoluciones disponibles
Dim a As Boolean
Dim i As Long

With Screen
Label1(0) = "Resolución actual: " & (.Width \ .TwipsPerPixelX) & " x " & _
(.Height \ .TwipsPerPixelY)
End With
i = 0
Do
a = EnumDisplaySettings(0&, i&, DevM)
i = i + 1
If a Then
'Mostrar en el listbox las resoluciones disponibles
List1.AddItem Format$(DevM.dmPelsWidth, " @@@@") & " x " & _
Format$(DevM.dmPelsHeight, "@@@@") & " " & _
Format$(DevM.dmBitsPerPel, "@@") & " bits"
'Guardar esos datos en nuestro array
'de las resoluciones disponibles
ReDim Preserve Disponibles(i - 1)
With Disponibles(i - 1)
.Width = DevM.dmPelsWidth
.Height = DevM.dmPelsHeight
.Bits = DevM.dmBitsPerPel
End With
End If
Loop While a
'Deshabilitar el botón hasta que se seleccione algo
Command1.Enabled = False
End Sub

Private Sub Command1_Click()
'Cambiar a la resolución indicada
Dim i As Long

'índice de la selección en el ListBox
i = List1.ListIndex

'Se le indica los campos a tener en cuenta
'
'Si sólo se quiere cambiar la resolución,
'manteniendo los colores:
DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
'Si se quiere cambiar también los colores
If chkBits.Value Then
DevM.dmFields = DevM.dmFields Or DM_BITSPERPEL
'DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL
End If

With Disponibles(i)
DevM.dmPelsWidth = .Width
DevM.dmPelsHeight = .Height
DevM.dmBitsPerPel = .Bits
End With

Call ChangeDisplaySettings(DevM, 0)

With Screen
Label1(0) = "Resolución actual: " & (.Width \ .TwipsPerPixelX) & " x " & _
(.Height \ .TwipsPerPixelY)
End With

End Sub

Private Sub List1_Click()
Dim i As Long

i = List1.ListIndex
'Mostrar en el label la resolución seleccionada
Label1(1) = "Cambiar a: " & Disponibles(i).Width & " x " & _
Disponibles(i).Height & " " & _
Disponibles(i).Bits & " bits"
'Ya hay una selección, habilitamos el botón
Command1.Enabled = True
End Sub

    Pregunta:  34406 - CAMBIAR LAS PROPIEDADES DEL MODEM DESDE 1 APLICACION V.BASIC
Autor:  Carlos Gallardo
Mi problema es que estoy realizando una aplicación en visual basic para configurar un modem con unos datos determinados y no se como referirme a las propiedades del modem que tengo que tocar.
Si pudierais ayudarme me seria de mucha utilidad, gracias.
  Respuesta:  Ramon Diaz
La comunicacion con el modem se hace mediante comandos AT y se puede configurar con comandos AT
visita esta pagina
http://www.iespana.es/canalhanoi/hardware/modem.htm

Casi al final tienes comandos (Registro S) para configurarlo

Com Mscomm activas la señal DTR y envias ATS11? y te devuelve un el eco y el valor del registro

|<  <<  221 222 223 224 225 226 227 228 229 230 231  >>  >|