Kioskea
Recherche
Haz una pregunta Denunciar

Codigo para guardar desde VB [Resuelto/Cerrado]

MATPEL - Última respuesta el 17 may 2010, 19:24
Hola,
estoy desarrollando un pequeño sistema, pero no se como guardar los datos ingresados desde cajas de texto a una base de datos en tiempo de ejecución, estoy usando la base de datos en access.
el sistema lo desarrollo en vb6.0 podrían enviarme un ejemplo simple por favor....
Seguir leyendo 
Respuesta
+67
moins plus
Quizás llgué un poco tarde, pero por lo que he leído, mucho ruido y pocas nueces... jajaja. Te voy a dar una alternativa sencilla, y de manera dinámica. No sé si estás usando controles para la conexión, yo te recomiendo lo siguiente.

Primero, abrís un Block de notas y en blanco lo guardás como Conexion.udl en la carpeta donde va a estar el ejecutable del sistema. Cuando le des doble click a ese udl, te vas a ubicar en seguida. Te parás sobre la pestaña Proveedor y seleccionás (en tu caso porque es Access, recomiendo siempre SQL): Microsoft Jet 4.0 OLE DB Provider, click en siguiente, pestaña conexión y ahí seleccionás tu base de datos. Click a Probar conexión y seguramente te dirá: La prueba ha sido exitosa. Bien vamos al código ahora.

En un Modulo, vas a declarar un procedimiento llamado Main, y desde el menú del IDE (Ventana de Visual Basic, donde programás) Proyecto, Propiedades, y en la misma pestaña General que se abre en esa ventanita, cambiás la opción de arranque te aparece en el combo dejándo como Objeto Iniciar: Sub Main. A Programar carajo. Vamos a crear una conexión de manera dinámica. La cual tiene que estar declarada fuera del main a nivel general del módulo para que todo tu proyecto pueda verla.

Modulo
-----------------------------------------------------------------------------------------------------------------------
Public Cn as new Adodb.connection

Private Sub Main ()
On Error GoTo NotConnect 'Siempre es bueno implementar control de errores ... Cuestión de estabilidad
Cn.Open "File Name=" & App.Path & "\Conexion.udl" 'Abrimos la conexión, App.Path contiene el directorio
'De tu sistema, y Conexion.udl, la ruta a la base. Así si cambiás la base de directorio, siempre podrás indicarle al sistema donde está. Luego sí, le dás inicio a tu formulario principal.
FRMinicial.Show 'Ojo FRMinicial, porque no sé como se llama tu formulario.
Exit sub 'Esto es para que si no existe error el flujo no pase hacia lo que viene acá abajo.

NotConnect:
Msgbox "No se puede establecer la conexión a la Base de Datos. Comuníquese con el administrador del sistema", vbCritical, "Error al conectar"
end sub

Redondeando, declaramos una conexión dinámica que usará todo el sistema. Vamos a tu duda. Lo mejor a la hora de guardar es trabajar mediate parámetros, siempre parametrizando todo a funciones o procedimientos en Módulos, los .bas, que se encarguen de guardar los datos. Seguramente tendrás un ABM (Altas, bajas y modificaciones) de lo que estés ingresando. Supongamos Clientes, hasta casi puedo ver los objetos insertados: TXTnombre.Text, TXTapellido.Text, seguramente los tendrás así. A la hora de guardar, antes mediante una función Booleana, verifica la integridad de tu formulario, es decir, que no falten datos escenciales. Vamos al código. Un botón guardar, una función de Comprobación, y un procedimiento de guardado codificado en un módulo, y que usará una consulta SQL.

Private Sub CMDguardar_Click() 'De tu formulario de ALTA DE CLIENTES, no de MODIFICACION
If VerificarFRM = True Then 'Y acá es donde vamos a ver si todo está en orden, sólo verificarás los campos que vos consideres estrictamente necesarios.

Call GuardarCliente (True, Val(TXTIdCliente.Text), TXTnombre, TXTapellido) 'En caso de ser verdadera la comprobación entrará en el if y es entonces cuando mandarás los parámetros al procedimiento que los guardará. Recuerda que tiene que estar en un módulo y tiene que ser Público. Y con los parámetros exactos que recibirá.
Verás que como primer parámetro hay una valor verdadero, eso es porque voy a usar el mismo procedimieto para guardar clientes nuevos o guardar cambios de clientes existentes, si el Valor es TRUE, se agregará un nuevo Registro, si es valor es False, buscará el registro que has levantado para modificar. Deberías tener en el formulario, un campo, en modo Disable, TextBox, donde vayas mostrando el Nro de Cliente, si en nuevo el cliente, claro está que mostrarás un número que será el próximo registro, si el cliente existe, a la hora de guardar cambios, ese será el parámetro para encontrar el registro en Base y poder modificarlo.
'*Saltamos al módulo y el procedimiento de Guardado.

End if
end sud

Private Function VerificarFRM () as Boolean
VerificarFRM = False ' Por defecto la consideramos falsa. Y comprobaremos sólo nombre y apellido.
If TXTnombre.Text = "" Then
Msgbox "Debe ingresar el nombre del cliente para su alta.", vbInformation, "Faltan Datos"
TXTnombre.Setfocus 'Posiciona el cursor en el Textbox TXTnombre
Exit Function 'Esto significa que si se cumple la condición al entrar en el If, saldrá de la Función.
end if
If TXTapellido.Text = "" Then
Msgbox "Debe ingresar el nombre del cliente para su alta.", vbInformation, "Faltan Datos"
TXTapellido.Setfocus
Exit Function
end if
VerificarFRM = True ' ESto significa que en caso de no cumplirse las condiciones anteriores, la función devolverá valor verdadero, y tu formulario estará completado de acuerdo a tus deseos.
End Function

Módulo Donde está el Procedimiento que Guarda.
------------------------------------------------------------------------------------------------------------------------

Public Sub GuardarCliente (Condicion as Boolean, Id as integer, Nombre as String, Apellido as String)

Dim Rs as New Adodb.Recordset 'Declaramos localmente el objeto que se va a encargar de meter los datos en la Base, usando la conexión que te enseñé al principio. Vamos a ver como lo abrimos usando Sentencias SQL.
If Condicion = True then 'Significa que el cliente es nuevo.
Rs.Open "Select * From Clientes", Cn, adOpenDynamic, adLockOptimistic
'La consulta Select, lo que hará es abrir todos los campos de esa tabla, Clientes. Cn es la conexión global a tu sistema, y siempre que vayas a manipular datos y necesites un cursor Bidireccional, usarás esos parámetros posteriores.
Rs.Addnew 'Hacemos que abra un nuevo registro en la Base de Datos.
Else 'Si la condicion no es verdadera, es porque el clientes no es nuevo, y el parámetro debería provenir desde tu formulario de Modificación, o bien usando un Flag, Global a tu FRM, una bandera, de tipo Booleana, eso significaría que en caso de que uses el mismo FRM para hacer altas y modificaciones, lo manejarías así, cuando abris el FRM, seteas en el Load, tu Flag con Valor True, si trajiste los datos de un registro existente, la seteas con Valor False, y simplemente como parámetro pasas el nombre de tu Variable
Rs.Open "Select * From Clientes Where IdCliente=" & Id, Cn, AdOpenDinamic, AdLockOptimistic "Abrimos tu recordset, usando como parámetro el Número de cliente que fue cargado a la hora de modificar los datos. Sencillamente abrimos sólo el registro que pertenece a ese número de cliente.
End if
'Procedemos con la asignación de datos para terminar con la clase.
Rs.Fields("Nombre") = Nombre
Rs.Fields("Apellido") = Apellido
Rs.Update
If Rs.State = AdStateOpen then
Rs.Close
Set Rs = Nothing
End if
End Sub

-----------------------------------------------------------------------------------------------------------------------------

Bueno finalmente al salir de ese procedimiento, volverás al procedimiento del botón guardar, y seguramente tendrás un Msgbox que informe que los datos han sido guardados con éxito, y una llamada a un procedimiento que realice una limpieza de Formulario. En caso de que tengas ese campo donde vas mostrando el Número de Cliente, podrías usar ésta Función.
Suponiendo que tu TextBox se llame NroCte, entonces:

NroCte.Text = Str(BuscarNroCte)

Public Function BuscarNroCte () As Integer
Dim Rs as New Adodb.Recordset
Rs.Open "Select IdCliente From Clientes", Cn, AdOpenDinamic, AdLockOptimistic
If Not Rs.Eof Then (Eso es para verificar que tu tabla no esté vacía, sino tendrías un error
Rs.Movelast
BuscarNroCte = Rs.Fields("IdCliente") + 1 'O sea el nuevo cliente que se va a ingresar
Else 'Si no hay registros...
BuscarNroCte = 1
End if
End sub

Cualquier consulta, o duda, mi mail es renzo@asiscomputacion.com.ar Te Ayudaré con Gusto. Espero que tanta Sanata te haya sido de utilidad, admiro a los iniciantes por cuenta propia...

Respuesta
+20
moins plus
Private Sub GUARDAR_Click()
Dim Ncon As CONDUC
Open "Ncon" For Random As 1
Ncon.COD = Text1
Ncon.NC = Text2
Ncon.CN = Text3
Ncon.LC = Text4
Ncon.RH = Text5

P = Val(Text1)
Put 1, P, Ncon
Close 1

End Sub

Respuesta
+10
moins plus
mira si estas usando objetos para enlazarla base de datos me refiero a data o adodc solo tienes que direccionar tu base de datos desde la tabla de propiedades.
primer paso:
selecciona tu texbox y ve a la tabla propiedades y en la propiedad datasource escoge el objeto con el cual conectas tu bd.
paso dos en la misma tabla propiedades seleciona la propiedad datafield el cual te mostrara los nombres de los campos los cuales maneja tu tabla en la base de datos elige el campo al que correspona el texbos y repite la operacion en cada textbox

y crea un boton llamado guardar y en la programacion solo agregas lo siguiente:

data1.recordset.addnew

o bien
adodc1.recorset.addnew

asi le cambiastes de nombre al objeto por ejemplo

aleatorio.recordset.addnew

Respuesta
+9
moins plus
porfavor mandarme el codigo del boton de guardar en tiempo de ejecusion osea que cuando lo ponga a correr lo escriba algo en una cajade text y me lo almacene en la base datos acces

cracker666- 18 jul 2009, 06:33
hola que tal mira el codigo seria el siguiente este sirve para cuando modificas en timpo de ejecucion solo ponlo en el boton guardar y te guardara lo que modifiquess en algun text ok

On Error GoTo Salir
Data1.Recordset.Update
lblRegistros.Caption = Data1.Recordset.RecordCount
Data1.Refresh
Salir:
Exit Sub
soñadora- 15 abr 2010, 04:28
hola estoy haciendo numeros aleatorios pero cuando ejecuto el programa y me da el numero lo debo guardar en la base de datos solo el primer numero me podrias ayudar con el codigo para seguir guardando los siguientes sin tener que dar click cada vez que se genere un numero ya me guarda pero de uno en uno dando click
Respuesta
+8
moins plus
Buenas, disculpen pero necesito una aseoría y de veras les agradecería si me pueden ayudar..
resulta que yo necesito hacer un porgrama en la cual se puedan guardar información de una persona, en la cual se pueda modificar, y que tenga además gran cantidad de memoria para los datos, además si se podría poner una imagen del usuario...
Gracias por la atención, cualkier cosa mi msn es karlosvalderom@hotmail.com

Respuesta
+7
moins plus
mira aqui tienes un manual

http://www.recursosvisualbasic.com.ar/...

y para agregar nuevos registros

http://www.recursosvisualbasic.com.ar/...

no te olvides de google, encontraras muchos mas

espero te sirvan de ayuda

Respuesta
+5
moins plus
Hola yo estoy hacendo un sstema en VB que tambien guarda y me almacena bien utilizo este codigo:
TiposProgramasBindingSource.Current(0) = TxtId_Tipo.Text
TiposProgramasBindingSource.Current(1) = TxtDescripcion.Text
TiposProgramasBindingSource.EndEdit()
Tipos_ProgramasTableAdapter.Update(Dataset_SS.Tipos_Programas)
y no tengo ningun probrlema me almacena perfecto solo que si guardo y quiero despues consultar ese registro me aparece en blanco pues para que me actualce necesito salirme de esa ventana y eso no me sirve requiero que me actualice todo al momento de dar guardar, espero me ayuden y me puedan decir como hacerle.

Respuesta
+2
moins plus
Hola

aca te mando una pagina

http://www.forosdelweb.com/f69/como-guardar-codigo-fichero-vb-5-a-361316/

am lett... - 10 jul 2009, 18:33
Claro que esto si es posible
tal vez la primera caja de texto se llame textbox1 y la segunda textbox2

dependiendo en que control estes agregando el código puedo pensar que tal vez es un boton

al hacer doble clic en el boton el código que vas a ingresar es el siguiente :
si es en la version 6 de visual
label1.caption=val(textbox1.caption)+val(textbox2.caption)

si estas trabajando en visual estudio 2005
entonces el código es
label1.text=val(textbox1.text)+val(textbox2.text)
Ingemiero Neslon lett... - 20 nov 2009, 02:08
es muy sencillo:primero creas un formulario y agregas los siguientes controles2 textbox le colocamos(Name:txt1,Name:txt2) , un label(Name:lblresultado) entras ensuspropiedades del label y en (autosize=false,en borderstyle=fixed3d) y un button(Name:btncalcular y para el texto:SUMAR).......y despues haces doble click en el button(SUMAR) del formulario y copias el codigo siguiente.......Y UNA VES Q ESTE LISTO LO EJECUTAS

Public Class Form1



Private Sub btncalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncalcular.Click
Dim v1, v2, s As Double
v1 = Double.Parse(txt1.Text)
v2 = Double.Parse(txt2.Text)
s = v1 + v2
lblresultado.Text = s.ToString

End Sub
End Class
vmos80 lett... - 28 feb 2010, 05:25
' Controles Necesarios
'txt1 = textbox1
'txt2 = textbox2
'lbl1 = label1
'cmd1= command1

'Codigo

Private Sub cmd1_Click()
lbl1.caption = (val) txt1.text + (Val) txt2.text
End Sub

'Eso es todo
edgarin raycabrera - 4 sep 2009, 01:17
hola mira soy nuevo en vb.net estoy desarrollando un editor de texto en web pero no encuentro como guardar un texto en un bloc de notas por favor si tienes algun consejo o un ejemplo te lo agradeceria muchisisimo mandame a mi correo EdgarDan_Samu@hotmail.com
skifree raycabrera - 27 dic 2009, 07:46
Que tal. agrege su correo, preguntandome si me podria ayudar en visual basic pero cuando lo agrege el correo es invalido.. espero me pueda contactar po mi correo es skifree@live.com.mx


saludos y gracias por la atencion...
Respuesta
+0
moins plus
q tal
estoy desarrolando un sistema de control de entrada para mi cole pero no tengo idea como guardar la hora a la q2ue ingreso a cada formulario me podrian ayudar con esto x fa vor....

Respuesta
+0
moins plus
Hola necesito poner un boton en un formulaio para exportar a excel 2007 y me pregunte donde quiero guardarlo.
Antes esto lo solia hacer en access 2000 pero en access 2007 no deja hacer macro para exportar a excel 2007.
Mi idea un boton que me exporte una tabla o una consulta a un archivo .xls pero que lo pueda guardar con el nombre que quiera y en la dirección con quiera OK.
Gracias espero vuestra ayuda OK

Este documento intitulado « codigo para guardar desde VB » de Kioskea (es.kioskea.net) esta puesto a diposición bajo la licencia Creative Commons. Puede copiar, modificar bajo las condiciones puestas por la licencia, siempre que esta nota sea visible.

¿Todavía no eres usuario?

inscríbete, gratuitamente y en menos de un minuto!

Los miembros obtienen más respuestas que los usuarios anónimos.

Ser miembro te permite llevar un seguimiento detallado de tus consultas.

Ser miembro te permite gozar de otras opciones adicionales.