Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Vb6 Bd

Estas en el tema de Vb6 Bd en el foro de Visual Basic clásico en Foros del Web. Hola Alguna dirección donde haya un minimanual de bases de datos en visual basic y con ejemplos. Gracias....

  #1 (permalink)  
Antiguo 21/11/2005, 12:10
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
Exclamación Vb6 Bd

Hola Alguna dirección donde haya un minimanual de bases de datos en visual basic y con ejemplos.

Gracias.
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #2 (permalink)  
Antiguo 21/11/2005, 12:25
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
... en

www.geoavila.com podes encontrar algunos..

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #3 (permalink)  
Antiguo 21/11/2005, 12:43
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
Pregunta Mi duda

ok, no me sirvieron.

Que conste que antes de ponerla siempre miro para no tener que molestar y preguntar.

Expongo la duda:

Tengo este código, este código lo que hace es coge el texto de Text1.text y lo divide en palabras añadiendo, la palabra Añadido, que más adelante sera la consulta de una base de datos. Y en text2.text introduce el texto + Añadido.


Private Sub Command1_Click()

Dim i As Integer
Dim palabras As Variant
palabras = Split(Text1.Text)
For i = 0 To UBound(palabras)
Añadir(palabras) // Llamada a la función Añadir, esto es lo que no va
Text2.Text = Text2.Text & " " & palabras(i) + " [" + Añadido+ "]"
Next i

End Sub


En la función añadir:

Esta función recoge el valor que pasa por la funcion Añadir(palabras) y genera la consulta SQL en la base de datos. Bueno Debería porque no lo hace.
Y debereía devolverla junto con la palabra [campo3] para que arriba lo añada al text2.text.
Es decir: palabra[campo3] y asi con cada palabra del text1.text


Sub Añadir(palabras As String)
SQLTmp = "SELECT campo3 FROM miha WHERE campo1='palabras'"
Dim Db As Database 'Variable para las Bases de Datos
Set Db = OpenDatabase("data.mdb")

On Error Resume Next
Db.Execute SQLTmp, dbFailOnError
If Err Then
MsgBox "Se ha producido un error al ejecutar la orden:" & vbCrLf & SQLTmp
End If

End Sub


Muchas Gracias por la atención prestada.
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.

Última edición por MeXiCaN; 22/11/2005 a las 04:30
  #4 (permalink)  
Antiguo 22/11/2005, 04:58
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
¿Alguien tiene idea?
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #5 (permalink)  
Antiguo 22/11/2005, 08:00
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Cita:
Iniciado por MeXiCaN
Sub Añadir(palabras As String)
SQLTmp = "SELECT campo3 FROM miha WHERE campo1='palabras'"
Dim Db As Database 'Variable para las Bases de Datos
Set Db = OpenDatabase("data.mdb")

On Error Resume Next
Db.Execute SQLTmp, dbFailOnError
If Err Then
MsgBox "Se ha producido un error al ejecutar la orden:" & vbCrLf & SQLTmp
End If

End Sub


Muchas Gracias por la atención prestada.
en eso código intentas agregar algo.. eso es una consulta cierto...?

nos vemos...
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #6 (permalink)  
Antiguo 22/11/2005, 08:18
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
Es que no se como recoger el resultado de la consulta, y como devolverlo a la función original.

Pero creo que por lo demás esta todo correcto, no?
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #7 (permalink)  
Antiguo 22/11/2005, 09:09
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Set Db = OpenDatabase("data.mdb")

aqui tendrías que ser...
Set Db = OpenDatabase("c:\data.mdb") ' por ejemplo que esté en el C:

Nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #8 (permalink)  
Antiguo 22/11/2005, 09:14
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
Eso lo tengo bien, lo puse para poner el ejemplo.

Poniendo eso bien alguna sugerencia.
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #9 (permalink)  
Antiguo 22/11/2005, 09:43
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
bueno ahora agrega un recordset.

dim Rs as new Recordset
SET Rs = new Recordset

Rs.Open SqlTemp,DB, adOpenStatic, adLockOptimistic

msgbox rs(0)


quitale al Db.execute el SqlTemp y lo pones en el recordset.
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #10 (permalink)  
Antiguo 22/11/2005, 09:55
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
Cita:
Sub Mirar(palabras As Variant)
SQLTmp = "SELECT tabla.campo3 FROM tabla WHERE campo1='palabras'"
Dim Db As Database 'Variable para las Bases de Datos
Dim Rs As New Recordset

Set Db = OpenDatabase("C:\data.mdb")
Set Rs = New Recordset

Rs.Open SqlTemp, Db, adOpenStatic, adLockOptimistic

On Error Resume Next
Db.Rs SQLTmp, dbFailOnError
MsgBox Rs(0)
If Err Then
MsgBox "Se ha producido un error al ejecutar la orden:" & vbCrLf & SQLTmp
End If
Db.Close

End Sub
Error de compilacion, no se encontro el método o miembro de datos
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #11 (permalink)  
Antiguo 22/11/2005, 11:44
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
es porque no hay nada en la consulta.. hace una consulta donde hallan más datos .

para manejar esto...

hace esto..

if Rs.Bof = False then
MsgBox Rs(0)
end if
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #12 (permalink)  
Antiguo 22/11/2005, 12:09
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
El mismo Error. Da el mismo error.
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #13 (permalink)  
Antiguo 22/11/2005, 12:47
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
bueno yo la verdad no manejo la apertura de la db de esta menra
Set Db = OpenDatabase("C:\data.mdb")

lo hago así
Set Db = new Database
db.Open (Colocas el Driver y que base dedatos vas a usar)
db.cursolorLocation = cliente ' busca el correcto lo estoy haciendo al calculo.

y depues lo del recordset.
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #14 (permalink)  
Antiguo 22/11/2005, 13:31
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
ok, buscaré haber si encuentro algo sobre basos de datos una vez tenga algo lo posteo, haber si sirve tambien para las faqs y retomamos el tema ok, Geoavila?

Gracias igualmente.
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #15 (permalink)  
Antiguo 22/11/2005, 13:32
 
Fecha de Ingreso: septiembre-2005
Mensajes: 76
Antigüedad: 18 años, 7 meses
Puntos: 0
Siempre salvandote las papas.... a lo que vos le decis funcion es solo un procedimiento, los procedimientos no devuelven valores y las funciones si.
aca te paso como hacerlo, para que funcione acordate de ir a el menu Proyecto->Referencias y ahi seleccionar alguna de microsoft DAO

Private Sub Command1_Click()
Dim i As Integer
Dim palabras As Variant
palabras = Split(Text1.Text)
For i = 0 To UBound(palabras)
Text2.Text = Añadir(palabras(i)) & " " & "Añadido"
Next i
End Sub


Public Function Añadir(palabras As String) As String
Dim base As Database
Dim tmiha As Recordset
Dim campo_campo3 As Field
Set base = OpenDatabase(App.Path & "\data.mdb")
Set tmiha = base.OpenRecordset("SELECT campo3 FROM miha WHERE campo1='palabras'")
Set campo_campo3 = tmiha.Fields("campo3")
If tmiha.RecordCount < 1 Then
MsgBox ("No existe el registro")
Añadir = ""
else
Añadir = palabra & " " & campo_campo3
endif
End Function
__________________
Buby Systems
  #16 (permalink)  
Antiguo 22/11/2005, 13:35
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
Gracias Bubilo, lo probaré, pero sin tan mal te sabia contestarme no haberlo hecho.
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #17 (permalink)  
Antiguo 22/11/2005, 13:41
 
Fecha de Ingreso: septiembre-2005
Mensajes: 76
Antigüedad: 18 años, 7 meses
Puntos: 0
Si me gusta ayudar.. es solo una broma...
__________________
Buby Systems
  #18 (permalink)  
Antiguo 22/11/2005, 13:54
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
ok, pues entonces nada, pero la proxima vez pon una caritas asi nos entenderemos mejor

Muchas gracias, en cuanto pueda pruebo el código y si no al ataque con él. Mucahs gracias de nuevo.
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #19 (permalink)  
Antiguo 24/11/2005, 12:49
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
Hola bubilo:

Me peta en la funcion Añadir me dice que se esperaba una función o una variable.

Cita:
'Private Sub Command1_Click()
'Dim i As Integer
'Dim palabras As Variant
'palabras = Split(Text1.Text)
'For i = 0 To UBound(palabras)
'Text2.Text = Añadir(palabras(i)) & " " & "Añadido"
'Next i
'End Sub


'Public Function Añadir(palabras As String) As String
'Dim base As Database
'Dim tmiha As Recordset
'Dim campo_campo3 As Field
'Set base = OpenDatabase(App.Path & "\data.mdb")
'Set tmiha = base.OpenRecordset("SELECT campo3 FROM miha WHERE campo1='palabras'")
'Set campo_campo3 = tmiha.Fields("campo3")
'If tmiha.RecordCount < 1 Then
'MsgBox ("No existe el registro")
'Añadir = ""
'Else
'Añadir = palabra & " " & campo_campo3
'End If
'End Function
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #20 (permalink)  
Antiguo 24/11/2005, 21:31
 
Fecha de Ingreso: septiembre-2005
Mensajes: 76
Antigüedad: 18 años, 7 meses
Puntos: 0
LISTO MEXICAN NO SE CUAL ERA EL ERROR QUE TE DABA PERO YA LO ARREGLE Y LO PROBE EN UNA BASE IGUAL A LA TUYA Y FUNCIONA PERFECTO... CUALQUIER COSA AVISA...

Private Sub Command1_Click()
Dim i As Integer
Dim palabras As Variant
palabras = Split(Text1.Text)
For i = 0 To UBound(palabras)
Text2.Text = Text2.Text & " " & Añadir(CStr(palabras(i))) & " " & "Añadido"
Next i
End Sub


Public Function Añadir(palabras As String) As String
Dim base As Database
Dim tmiha As Recordset
Dim campo_campo3 As Field
Set base = OpenDatabase(App.Path & "\data.mdb")
Set tmiha = base.OpenRecordset("SELECT * FROM miha WHERE campo1 = '" & palabras & "'")
Set campo_campo3 = tmiha.Fields("campo3")
If tmiha.RecordCount < 1 Then
MsgBox ("No existe el registro")
Añadir = ""
Else
Añadir = palabras & " " & campo_campo3
End If
End Function
__________________
Buby Systems
  #21 (permalink)  
Antiguo 25/11/2005, 13:08
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
De nuevo aquí.

Bubilo me da un error '13' en tiempo de ejecucion.

No coinciden los tipos.

¿Os suena este error?

Y cuando le doy a depurar la linea que me señala es la de:

Set tmiha = base.OpenRecordset("SELECT campo3 FROM miha WHERE campo1 = '" & palabras & "'")
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #22 (permalink)  
Antiguo 25/11/2005, 17:20
 
Fecha de Ingreso: septiembre-2005
Mensajes: 76
Antigüedad: 18 años, 7 meses
Puntos: 0
fijate en la base de datos que los dos campos sean de texto..
__________________
Buby Systems
  #23 (permalink)  
Antiguo 26/11/2005, 03:11
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
Los dos campos son de tipo texto, pero el error insiste.
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #24 (permalink)  
Antiguo 28/11/2005, 13:11
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
¿GeoAvila tu no sabrás porque nos da este error?
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #25 (permalink)  
Antiguo 29/11/2005, 00:33
 
Fecha de Ingreso: septiembre-2005
Mensajes: 76
Antigüedad: 18 años, 7 meses
Puntos: 0
Hola mexican, lo estube probando bien y me funciona de maravillas si queres pasame el proyecto junto con la base a mi mail y veo que es lo que estas haciendo mal el error que te tira es que esta mal declarada una variable... asi que pasamelo y te lo arreglo..
__________________
Buby Systems
  #26 (permalink)  
Antiguo 29/11/2005, 08:19
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Bueno revisa si dentro de la tabla no usas alguna palabra reservada como User o esas cosas pasalo todo a español sin una la "ñ" y sin espacios y veremos pienso que algún error interno de access con alguna palabra reservada...

pero miremos a ver que sucede..

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila

Última edición por GeoAvila; 29/11/2005 a las 08:35
  #27 (permalink)  
Antiguo 29/11/2005, 14:45
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
Bubilo ya esta mandado!! Espero que el correo que tienes en el perfil funciones, o no lo hayas cambiado.
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #28 (permalink)  
Antiguo 30/11/2005, 02:45
 
Fecha de Ingreso: septiembre-2005
Mensajes: 76
Antigüedad: 18 años, 7 meses
Puntos: 0
me llego el archivo perfecto.. te cuento cual es tu error en las referencias que seleccionas en tu proyecto microsoft dao, microsoft world etcc.. estas tienen niveles de jerarquia o sea que la que se encuentra mas arriba es la mas importante
y vos tenias una referencia a activex data objets 2.5 arriba de la de dao 3.6 asi que aparentemente te tomaba la consulta sql como si fuera de ese control y mandaba el error porque debe ser diferente la sintaxis.

solucionalo de esta forma en la ventana de referencias selecciona dao 3.6 y hace click en la flechita para arriba de prioridad hasta que este abajo de OLE automation.

asi se va a solucinar tu problem.

PD: por mas que lo analize y mire mil veces no entiendo para que es el programita que estas haciendo.... jeje
__________________
Buby Systems
  #29 (permalink)  
Antiguo 30/11/2005, 15:12
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
Muchas Gracias Bubilo
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
  #30 (permalink)  
Antiguo 30/11/2005, 15:27
Avatar de MeXiCaN  
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona - España , Morelia - México
Mensajes: 162
Antigüedad: 20 años
Puntos: 0
Muchas Gracias Bubilo y una duda más.

He quitado algunas cositas

Código:
Private Sub Command1_Click()

Dim i As Integer
Dim palabras As Variant

palabras = Split(Text1.Text)
For i = 0 To UBound(palabras)
    Text2.Text = Text2.Text & " " & Añadir(CStr(palabras(i))) & " " 
Next i

End Sub


Public Function Añadir(palabras As String) As String

Dim base As Database
Dim tablanueva As Recordset
Dim campo_campo3 As Field

Set base = OpenDatabase(App.Path & "\database.mdb")
Set tablanueva= base.OpenRecordset("SELECT * FROM tabla WHERE campo1='" & palabras & "'")
Set campo_campo3 = tablanueva.Fields("campo3")

If tmiha.RecordCount < 1 Then
        Añadir = palabras & " " & "[Sin Concordancia]"
Else
    Añadir = palabras & " " & "[" & campo_campo3 & "]"
End If

End Function

No se si has probado el fichero que te pase pero por ejemplo en el fichero hay un la, que el programa me responde [Sin Corcondancia], pero sin embargo en la base de datos si que está. ¿puede ser debido a algún espacio en blanco? Y si es así ¿como podría quitarlo?.
__________________
Un saludo, MeXiCaN :golpeado: :adios:

Poco es tanto, cuando poco necesitas. E.Bunbury

Siempre que haya una causa noble por la que luchar, siempre habrá ladrones que la apoyarán.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:29.