elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Duda Visual Basic + Access
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: Duda Visual Basic + Access  (Leído 11,766 veces)
jack06

Desconectado Desconectado

Mensajes: 133


anarkia99-Soft.


Ver Perfil
Re: Duda Visual Basic + Access
« Respuesta #10 en: 24 Agosto 2009, 19:43 pm »

a uhmm por lo visto creo k estas cometiendo dos posibles problemas

1.- Si te fijas que en el modulo estas poniendo la conexion a la BDD, eh en el form1 no lo estas llamando, entonces el el form load ponle Call Conectar.

2.- Y si te fijas en ese Sub Reload estas declarando una nueva conexion y fijate k stas poniendo RST y fijate que tu estas poniendo asi Set grilla.Recordset = rs, te comistes la t  :xD

FORM1
Código
  1. Private Sub reload()
  2. Set rst = New ADODB.Recordset
  3. rst.Open sql, CN
  4. Set grilla.Recordset = rst '<----------Te falto la T
  5. grilla.Refresh
  6. End Sub
  7.  
  8. Private Sub Form_Load()
  9. Call Conectar '<--------- Te Falto esa
  10. sql = "select * from socios order by id"
  11. Call reload
  12. End Sub

weno creo que esos dos era el problema cualkier cosa avisa Salu2  :¬¬


En línea

(̅_̅̅_̅(̅_̅_̅_̅_̅() ڪ €l $åßîø nø d nµn¢å tødø lø qµ£ Þî£n$å, Þ£®ø $î£mÞ®£ Þî£n$å tødø lø qµ£ d (̅_̅̅_̅(̅_̅_̅_̅_̅() ڪ
cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: Duda Visual Basic + Access
« Respuesta #11 en: 24 Agosto 2009, 19:46 pm »

ah bueno, lo que pasa por no hacer uso del "option explicit" ...... pero ellos creen que es broma xDD


En línea

ka0s


Desconectado Desconectado

Mensajes: 308


Ver Perfil
Re: Duda Visual Basic + Access
« Respuesta #12 en: 24 Agosto 2009, 21:39 pm »

a uhmm por lo visto creo k estas cometiendo dos posibles problemas

1.- Si te fijas que en el modulo estas poniendo la conexion a la BDD, eh en el form1 no lo estas llamando, entonces el el form load ponle Call Conectar.

2.- Y si te fijas en ese Sub Reload estas declarando una nueva conexion y fijate k stas poniendo RST y fijate que tu estas poniendo asi Set grilla.Recordset = rs, te comistes la t  :xD

FORM1
Código
  1. Private Sub reload()
  2. Set rst = New ADODB.Recordset
  3. rst.Open sql, CN
  4. Set grilla.Recordset = rst '<----------Te falto la T
  5. grilla.Refresh
  6. End Sub
  7.  
  8. Private Sub Form_Load()
  9. Call Conectar '<--------- Te Falto esa
  10. sql = "select * from socios order by id"
  11. Call reload
  12. End Sub

weno creo que esos dos era el problema cualkier cosa avisa Salu2  :¬¬


Es verdad, no me di cuenta de eso.
Arreglé como me dijiste pero seguía teniendo problemas.
El error que arrojaba ahora es:

"Runtime error '3001': Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros"

Le dí depurar y la línea que marcaba con error es la siguiente:

Código
  1. Private Sub reload()
  2. Set RST = New ADODB.Recordset
  3. RST.Open sql, CN 'ESTA LINEA ARROJABA EL ERROR!!
  4. Set grilla.Recordset = RST
  5. grilla.Refresh
  6. End Sub
  7.  
  8. Private Sub Form_Load()
  9. Call Conectar
  10. sql = "Select * from socios order by id"
  11. Call reload
  12. End Sub
  13.  
y lo que hice fue borrar la variable SQL del form_load y poner el comando directamente, y ahí si funciono y cargó la grilla completamente, así:

Código
  1. Private Sub reload()
  2. Set RST = New ADODB.Recordset
  3. RST.Open "select * from socios order by id", CN '-->LO MODIFIQUE DIRECTAMENTE
  4. Set grilla.Recordset = RST '
  5. grilla.Refresh
  6. End Sub
  7.  
  8. Private Sub Form_Load()
  9. Call Conectar
  10. 'ACA ESTABA LA VARIABLE Y LA QUITÉ!
  11. Call reload
  12. End Sub
  13.  
  14.  


Alguien sabe porque era ese error ya que estamos?

Desde ya muchas gracias a todos por la ayuda, me lo solucionaron perfectamente!

Saludos!
« Última modificación: 24 Agosto 2009, 21:44 pm por ka0s » En línea

cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: Duda Visual Basic + Access
« Respuesta #13 en: 24 Agosto 2009, 22:32 pm »

declaraste "sql" en algun lado? es una variable local o global? insisto con lo del option explicit, nunca le estas pasando parámetros a tu rutina.

lo puedes pasar como parametro:
Citar
Private Sub Form_Load()
Call Conectar
sql = "Select * from socios order by id"
Call reload(sql) <--
End Sub

Private Sub reload(Byval sql as string) <--
Set RST = New ADODB.Recordset
RST.Open sql, CN
Set grilla.Recordset = RST '
grilla.Refresh
End Sub

o declarandolo como global dentro del formulario
Citar
dim sql as string <--
Private Sub Form_Load()
Call Conectar
sql = "Select * from socios order by id"
Call reload()
End Sub

Private Sub reload()
Set RST = New ADODB.Recordset
RST.Open sql, CN
Set grilla.Recordset = RST '
grilla.Refresh
End Sub

saludos!!
« Última modificación: 24 Agosto 2009, 22:41 pm por cΔssiΔnі » En línea

ka0s


Desconectado Desconectado

Mensajes: 308


Ver Perfil
Re: Duda Visual Basic + Access
« Respuesta #14 en: 24 Agosto 2009, 23:23 pm »

Ahora sí, no molesto más por ahora.
Muchas gracias cΔssiΔnі !!
En línea

ka0s


Desconectado Desconectado

Mensajes: 308


Ver Perfil
Re: Duda Visual Basic + Access
« Respuesta #15 en: 26 Agosto 2009, 20:42 pm »

Gente sigo escribiendo en este post para no abrir otros al pedo.
Mi duda es la siguiente:
Tengo en la grilla ya cargada varios datos, y cuando marco un campo de la grilla o sea seleccionarlo y después ir al BOTON BORRAR, lo que se me borra a mi es el REGISTRO QUE ESTA ARRIBA DE TODO y no el que seleccione.

¿Porque puede ser esto?

Les muestro el source:

Código
  1. Private Sub grilla_Click()
  2. 'Si la grilla esta vacia
  3. If RST.EOF = True Then
  4. 'Muestra mensaje
  5.    MsgBox "La grilla está vacia", vbInformation, "Información"
  6. Else
  7. 'Sino, Almacena el valor del registro
  8. borrarregistro = RST!Id
  9. End If
  10. End Sub

Y acá pongo el BOTON BORRAR:

Código
  1. Private Sub cmdborrar_Click()
  2. 'Borra el registro seleccionado
  3. cn.Execute ("DELETE FROM socios where id= ") & borrarregistro, cn
  4. 'Llama a la función LOAD para que cargue la grilla nuevamente.
  5. 'Por lo tanto SE ACTUALIZA.
  6. Call Form_Load
  7. End Sub

O sea supuestamente el código está bien, pero PROBÉ PONIENDO
msgbox rst!id cuando clickeaba y lo que me figuraba siempre era el VALOR DE ID DEL PRIMERO DE TODOS de la grilla Y NO EL QUE MARCABA  :-\

Espero que me hayan entendido, sino trato de ser más claro.

Muchas gracias!
En línea

ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: Duda Visual Basic + Access
« Respuesta #16 en: 26 Agosto 2009, 22:04 pm »

Código
  1. Private Sub cmdborrar_Click()'Borra el registro seleccionado
  2. <->cn.Execute ("DELETE FROM socios where id= ") & borrarregistro, cn
  3. 'Llama a la funcion LOAD para que cargue la grilla nuevamente.
  4. 'Por lo tanto SE ACTUALIZA.
  5. Call Form_Load
  6. End Sub
  7.  

Coloca un punto de Interrupción allí <-> y verifica que valor tiene borrarregistro.

Por otro lado, te recomiendo que en vez de borrarregistro, indiques el index donde te encuentras posicionado en la grilla.

Por ejemplo usando un listview sería. ListView1.SelectedItem.Text
En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Duda Visual Basic + Access
« Respuesta #17 en: 26 Agosto 2009, 22:09 pm »

Código
  1. Private Sub cmdborrar_Click()'Borra el registro seleccionado
  2. <->cn.Execute ("DELETE FROM socios where id= ") & borrarregistro, cn
  3. 'Llama a la funcion LOAD para que cargue la grilla nuevamente.
  4. 'Por lo tanto SE ACTUALIZA.
  5. Call Form_Load
  6. End Sub
  7.  

El error esta en la SQL (falta el "*"). Deberia ser:

cn.Execute ("DELETE * FROM socios where id= ") & borrarregistro, cn

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: Duda Visual Basic + Access
« Respuesta #18 en: 26 Agosto 2009, 22:12 pm »

Amigo, deberías hacer un cursito de Querys.

La instrucción DELETE no lleva "*", solo si el motor de BD es Access lo permite. Pero no se usa ya que no le dices en el query si deseas eliminar solo unos campos o todo, no tienes la potestad para hacerlo, con esa instrucción eliminas todo el registro. Espero haberme hecho entender. Y no lo tomes a mal, pero leete un manual de BD. Hay Querys que podrían soprenderte.
En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Duda Visual Basic + Access
« Respuesta #19 en: 26 Agosto 2009, 22:19 pm »

OK, pero sólo porque tú lo dices...


En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines