PREGUNTAS CONTESTADAS - Visual Basic

 Hay un total de 3030 Preguntas.<<  >> 

    Pregunta:  36965 - IMAGENES ORACLE VISUAL BASIC
Autor:  pedro damico
si es posible que me exoliquen como inserto una imagen desde visual basic a un campo blob de la base de datos ceada en oracle
  Respuesta:  Cecilia Colalongo
Si usas ADO con los métodos AppendChunk y GetChunk supongo que vas a poder.

Igual fijate en éste link http://www.mvps.org/vexpert/articles/adoImages.htm que está bastante detallado.

    Pregunta:  36988 - AGREGAR FILAS A UN DBGRID EN TIEMPO DE EJECUCIÓN
Autor:  Cristian Mar
Estoy utilizando VB 5.0
Estoy haciendo una ventana para un modulo de ventas donde tengo un DBGRID enlazado con la tabla de detalle de venta.
Utilizo un boton para agregar una línea de detalle es decir, una fila en el grid con la siguiente instruccion:
grdDataGrid.Row = grdDataGrid.ApproxCount
pero en un determinado N° de filas no puedo agregar más filas.
Consulté la ayuda y alli dice que rows y cols Devuelven o establecen el número total de columnas o filas de un control DBGrid y figura la instrucción dbgrid.rows=nro (o algo así), pero no hay caso me salta un error.
En resumen cómo puedo hacer para agregar una fila a un dbgrid en tiempo de ejecución.
Espero que me ayuden ya que no sé que hacer.
Gracias.
  Respuesta:  Alice Queen
Estimado Cristian

No entiendo muy bien porque tenes que hacer un código para agregar líneas en un dbgrid, si en las propiedades de la misma marcas "AllowAddNew", ya te permite ir agregando nuevas filas.

espero que te sirva

saludos

    Pregunta:  37000 - REPARAR BASE D ACCESS 97 DESDE VISUAL AUTOMATICAMENTE
Autor:  Jorge
Hola, estoy haciendo una aplicación en VB que trabaja con bases de datos access 97, tengo una opción que revisa que todas las bases esten bien pero me gustaria hacer que si detecta que alguna esta rota el programa automaticamente la repare.

Agradeceria muchisimo si alguien me pudiese ayudar.

Gracias.
  Respuesta:  Oswaldo Monagas
Una vez que revisas las bases de datos si alguna esta corrupta debe generate un error, porque me imagino que esa rutina que las chequea, detecta que alguna esta mal. Cuando se genere este error puedes generar una rutina de error y dentro de ella hacer que repare la base de datos, si lo puede hacer entonces continua de nuevo con tu rutina y chequea de nuevo todo, si no, ya sabes no se puede hacer la reparacion y ahi tomas tu propia decicion.
Aqui te envio dos rutinas para reparar las bases de datos.

Case ...
RepairDatabase Curentdatabasename
Case ....
On Error Resume Next
Kill "temp.MDB"
Name curentdatabasename as "temp.mdb"
On Error Goto errcompact
compactdatabase "temp.mdb", Currentdatabasename
kill "temp.mbd"
Exit Sub
errcompact:
MsgBox "compaction failed"
name "temp.mdb" as Currentdatabasename
Case ...

Fijate que aqui esta la rutina si no se puede reparar la base de datos.

Aqui tienes otra con la rutina de errores:

Public Function DAO_RepairDataBase(ByVal pvStrDataBaseName _
As String) As String
'----------------------------------------------------
' Purpose:
' Repairs any DataBase
'
' Parmaters:
' 1 - pvStrDataBaseName
' The database Path and Name
'
' Return Value:
' Empty string if successful
' String with err number(s) & "|" & Err description(s)
'
' Notes:
' This routine uses the Database Engine's error collection
' to notify the user of exactly what's gone wrong during the
' repair process.
'--------------------------------------------------

Dim lErrDataBaseErrors As DAO.Error
Dim lStrErrors As String
Const lcIntNoErrors = 0
Const lcStrErrorDivider = "|"
lStrErrors = ""

On Error Resume Next

' Attempt to repair the database
DBEngine.RepairDatabase pvStrDataBaseName

' If an ERROR occured then show the user all of the errors
' in the database engine's error collection
If Err <> lcIntNoErrors Then

For Each lErrDataBaseErrors In DBEngine.Errors
lStrErrors = lStrErrors & lErrDataBaseErrors.Number _
& lcStrErrorDivider & lErrDataBaseErrors.Description _
& Chr(9)
Next lErrDataBaseErrors
End If

On Error GoTo 0

DAO_RepairDataBase = lStrErrors

End Function

Saludos

    Pregunta:  37011 - COMO OBTENGO UN RECORDSET DE DOS BASES DE DATOS DISTINTAS?
Autor:  Carlos Aguilar
¿Cómo puedo hacer para generar un sólo recordset en Visual Basic 6 con la informacion de una tabla en Oracle 8i, comparada con una tabla similar, solo que en Interbase 6?

Ejemplo:
Tabla: STOCK
Campos: Articulo numerico
Existencia numerico

Necesito presentar las existencias por articulo segun Oracle y segun Interbase 6

Ejemplo de un recordset resultante:
Articulo Existencia_Oracle Existencia_InterBase
  Respuesta:  Eyes
En VB 6.0 No puedes hacer una consulta a dos BD simultaneas, la solucion que te propongo es que te hagas un componente .Net con VB.Net ya que este nuevo entorno si permite interactuar con varias conexiones incluso relacionar las tablas de diferente BD. Un Saludo y suerte.
  Respuesta:  Brais Courel Gómez
Creo que vas a tener que hacer dos consultas separadas para saber si existe ese artículo en las dos BdDs, ya que el objeto Database que es el que realiza las conexiones con las BdDs y proporciona la información que almacena el recordset sólo se puede conectar con un servidor. Sólo hé probado a enlazar una consulta a dos BdDs desde visual una vez, y en ese caso las dos bases de datos trabajaban bajo informix y estaban en el mismo servidor por lo que sólo tuve que referenciar cada una a la hora de consultar.

    Pregunta:  37066 - IMPRESION JUSTIFICADA
Autor:  Horacio Elias
Es mi intención realizar una aplicación que lea informacion desde una base mdb y linea por linea la vaya imprimiendo en una hoja. Pero quiero que esta impresión salga justifica en ambos márgenes al estilo de Word.
¿Se puede?.
Gracias por vuestra ayuda
  Respuesta:  Xavi
Este código, me lo descarge de internet y le he realizado algunas modificaciones para controlar los saltos de linea, etc...
-----------------
Function justifica_printer(x0 As Long, xf As Long, y0 As Long, Txt As String) As Long
' x0, xf = posicion de los margenes izquierdo y derecho
' y0 = posicion vertical donde se desea empezar a escribir
' txt = texto a escribir
' devuelve la posicion vertical final

Dim x, y, k, ancho
Dim s As String, ss As String
Dim x_spc
Dim XX As Boolean

s = Txt
x = x0
y = y0
ancho = (xf - x0)

While s <> ""
ss = ""
XX = True
While (s <> "") And (Printer.TextWidth(ss) <= ancho) And XX = True
If Left$(s, 2) = Chr(13) & Chr(10) Then
s = Right$(s, Len(s) - 2)
XX = False
Else
ss = ss & Left$(s, 1)
s = Right$(s, Len(s) - 1)
End If
Wend
If (Printer.TextWidth(ss) > ancho) Then
s = Right$(ss, 1) & s
ss = Left$(ss, Len(ss) - 1)
End If
' aqui tenemos en ss lo maximo que cabe en una linea
If Right$(ss, 1) = " " Then
ss = Left$(ss, Len(ss) - 1)
Else
If (InStr(ss, " ") > 0) And (Left$(s & " ", 1) <> " ") And XX = True Then
While Right$(ss, 1) <> " "
s = Right$(ss, 1) & s
ss = Left$(ss, Len(ss) - 1)
Wend
ss = Left$(ss, Len(ss) - 1)
End If
End If
x_spc = 0
x = x0
If (Len(ss) > 1) And (s & "" <> "") And XX = True Then
x_spc = (ancho - Printer.TextWidth(ss)) / (Len(ss) - 1)
End If
Printer.CurrentX = x
Printer.CurrentY = y

If x_spc = 0 Then
Printer.Print ss;
Else
For k = 1 To Len(ss)
Printer.CurrentX = x
Printer.Print Mid$(ss, k, 1);
x = x + Printer.TextWidth("*" & Mid$(ss, k, 1) & "*") - Printer.TextWidth("**")
x = x + x_spc
Next
End If

y = y + Printer.TextHeight(ss)
While Left$(s, 1) = " "
s = Right$(s, Len(s) - 1)
Wend
Wend
justifica_printer = y
End Function

    Pregunta:  37112 - CAMBIAR CARACTERES EN UNA CELDA EN UN DBGRID
Autor:  Alice Queen
Hola colegas

mi problema es el siguiente:

cuando un usuario presiona una tecla, la evalúo (dbgrid1_keypressed())
pero si el mismo ingresa un caracter que no me sirve, debo cambiarlo.
No se como cambiarlo conservando los caracteres ya ingresados en esa celda y a su vez permitirle agregar más caracteres ahí mismo.
saludos
  Respuesta:  David
Aqui te muestro un código para hacer referencia a una celda del DBGRID, eso devuelve o establece el valor, el problema es que solo vale para la fila actual:

dim cels as string 'Declara variable

cels = datagrid1.Columns(1).Text 'Hace referencia a la celda de la fila actual en la columna indicada.

...

Para hacer referencia a otra fila puedes desplazar el enfoque a la fila que quieras.

    Pregunta:  37122 - LEER REGISTRO DE WINDOWS CON VISUAL BASIC 6
Autor:  Edgar Alberto Morales Rojas
Debo leer el registro de windows como lo hace getsetting pero debo especificarle el pat (Necesito leerlo de HKEY_LOCAL_MACHINE\SOFTWARE\VB and VBA Program Setting\Aplicacion.....

Si alguien me puede ayudar

Gracias
  Respuesta:  Luis M. Mora.
Saludos aqui tienes el Codigo:

' Este Programa necesita 3 botones

Const REG_SZ = 1 ' Unicode nul terminated string
Const REG_BINARY = 3 ' Free form binary
Const HKEY_CURRENT_USER = &H80000001
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Function RegQueryStringValue(ByVal hKey As Long, ByVal strValueName As String) As String
Dim lResult As Long, lValueType As Long, strBuf As String, lDataBufSize As Long
'retrieve nformation about the key
lResult = RegQueryValueEx(hKey, strValueName, 0, lValueType, ByVal 0, lDataBufSize)
If lResult = 0 Then
If lValueType = REG_SZ Then
'Create a buffer
strBuf = String(lDataBufSize, Chr$(0))
'retrieve the key's content
lResult = RegQueryValueEx(hKey, strValueName, 0, 0, ByVal strBuf, lDataBufSize)
If lResult = 0 Then
'Remove the unnecessary chr$(0)'s
RegQueryStringValue = Left$(strBuf, InStr(1, strBuf, Chr$(0)) - 1)
End If
ElseIf lValueType = REG_BINARY Then
Dim strData As Integer
'retrieve the key's value
lResult = RegQueryValueEx(hKey, strValueName, 0, 0, strData, lDataBufSize)
If lResult = 0 Then
RegQueryStringValue = strData
End If
End If
End If
End Function
Function GetString(hKey As Long, strPath As String, strValue As String)
Dim Ret
'Open the key
RegOpenKey hKey, strPath, Ret
'Get the key's content
GetString = RegQueryStringValue(Ret, strValue)
'Close the key
RegCloseKey Ret
End Function
Sub SaveString(hKey As Long, strPath As String, strValue As String, strData As String)
Dim Ret
'Create a new key
RegCreateKey hKey, strPath, Ret
'Save a string to the key
RegSetValueEx Ret, strValue, 0, REG_SZ, ByVal strData, Len(strData)
'close the key
RegCloseKey Ret
End Sub
Sub SaveStringLong(hKey As Long, strPath As String, strValue As String, strData As String)
Dim Ret
'Create a new key
RegCreateKey hKey, strPath, Ret
'Set the key's value
RegSetValueEx Ret, strValue, 0, REG_BINARY, CByte(strData), 4
'close the key
RegCloseKey Ret
End Sub
Sub DelSetting(hKey As Long, strPath As String, strValue As String)
Dim Ret
'Create a new key
RegCreateKey hKey, strPath, Ret
'Delete the key's value
RegDeleteValue Ret, strValue
'close the key
RegCloseKey Ret
End Sub
Private Sub Command1_Click()
Dim strString As String
'Ask for a value
strString = InputBox("Please enter a value between 0 and 255 to be saved as a binary value in the registry.", App.Title)
If strString = "" Or Val(strString) > 255 Or Val(strString) < 0 Then
MsgBox "Invalid value entered ...", vbExclamation + vbOKOnly, App.Title
Exit Sub
End If
'Save the value to the registry
SaveStringLong HKEY_CURRENT_USER, "KPD-Team", "BinaryValue", CByte(strString)
End Sub
Private Sub Command2_Click()
'Get a string from the registry
Ret = GetString(HKEY_CURRENT_USER, "KPD-Team", "BinaryValue")
If Ret = "" Then MsgBox "No value found !", vbExclamation + vbOKOnly, App.Title: Exit Sub
MsgBox "The value is " + Ret, vbOKOnly + vbInformation, App.Title
End Sub
Private Sub Command3_Click()
'Delete the setting from the registry
DelSetting HKEY_CURRENT_USER, "KPD-Team", "BinaryValue"
MsgBox "The value was deleted ...", vbInformation + vbOKOnly, App.Title
End Sub
Private Sub Form_Load()
'KPD-Team 1998
'URL: http://www.allapi.net/
Command1.Caption = "Agregar Valor"
Command2.Caption = "Leer Valor"
Command3.Caption = "Borrar Valor"
End Sub

Lo saque de http://www.allapi.net/ si quieres me ecribes y te envio el programa ;-) .. Saludos

    Pregunta:  37137 - DE UNIX A VB
Autor:  Adalberto Polanco
Hola senores, tengo unas bases de datos hechas bajo informix en unix, pero necesito trabajarlas desde visual basic, o convertirlos a windows
  Respuesta:  Felipe Ortega
Lo que tienes que hacer es usar el driver ODBC para Informix mediante ADO.

Puedes encontrar el string de conexión correspondiente en :
http://www.able-consulting.com/MDAC/ADO/Connection/ODBC_DSNLess.htm#ODBCDriverForInformix

Para poder trabajar con ADO debes agregar a las referencias de tu Proyecto (Menú Proyecto > Referencias) "Microsoft Active Data Objects" que sea de preferencia 2.6 o superior.

Ejemplos de como acceder a una base de datos usando ADO existen varios en internet, espero que esta pequeña ayuda te haya servido de algo.

    Pregunta:  37165 - SUSPENDER LA EJECUCION DE UN PROGRAMA TEMPORALMENTE
Autor:  Andres Pag
Me gustaria saber si existe alguna instruccion en VB6 para suspender temporalmente la ejecucion del programa durante algunas fracciones de segundo. Y si no existe como puedo hacer para lograr esto.

(En QBasic por ejemplo existe "sleep" que suspende por x segundos y luego continua con la ejecucion de la instruccion siguiente.)

Gracias
  Respuesta:  Joan Carles Sansano Belso
Visita en la direccion http://guille.costasol.net/vb_api02.htm la seccion
16.- Esperar a que un programa termine (incluso si es de MS-DOS) (32 bits) (31/Oct)
Hay una API SLEEP

    Pregunta:  37183 - EJECUTABLE SIN INSTALACIÓN
Autor:  Eduardo Beltran
Hola, mi pregunta es si se puede hacer en VB (Version 5) un programa que se pueda ejecutar en cualquier PC sin necesidad de crear un programa de instalación.
He visto que poniendo en las opciones de compilación la opcion de "Compilar usando P-Code" se puede ejecutar en algunos PC's (en la mayoria que los probé que no tenian VB instalado) pero no se si es por esa forma de compilarlo o no.
Digamos que lo que quiero hacer es un programa en VB 5 que directamente haciendo un COPY se ejecute correctamente en cualquier PC.

Muchas gracias.
  Respuesta:  voltio
Solamente tienes que crear un folder con todos los archivos que estas utilizando y crear un ejecutable. Podrás copiar ese folder en cualquier máquina y corriendo ese ejecutable correrás la aplicación.

|<  <<  228 229 230 231 232 233 234 235 236 237 238  >>  >|