Вы находитесь на странице: 1из 7

Bd Visual Basic 6.

0 Y Sql Server2000
Moderador: F_Tanori

Publicar una respuesta

Buscar

5 mensajes • Página 1 de 1

Bd Visual Basic 6.0 Y Sql Server2000


por SOLO VISUAL PUEDE » Mié Jul 14, 2004 5:40 pm

HOLA:

QUISIERA QUE ME AYUDARAS Y QUE ME DIJERAS CÓMO PUEDO MANIPULAR UNA BASES DE DATOS EN SQL SERVER
2000 MEDIANTE VISUAL BASIC 6.0, YA TENGO TODOS LOS FORMULARIOS EN VB6.0 PERO UTILIZO UNA BASE DE DATOS
EN ACCESS 2000, HE TRANSFORMADO ESA BD A SQL SERVER Y AHORA QUIERO UTILIZAR ESTA PARA TRABAJAR CON
ELLA.....¿CÓMO LE HAGO? ¿ME PUEDES AYUDAR?,...me puedes enviar información a mi correo TE LO AGRADECERÉ
MUCHISIMO, YA QUE ES DE SUMA IMPORTANCIA........

GRACIAS
SOLO VISUAL PUEDE
Nuevo miembro

Mensajes: 4
Registrado: Jue Jul 08, 2004 7:28 pm
Arriba

Re: Bd Visual Basic 6.0 Y Sql Server2000


por xxxNeOxxx » Jue Jul 15, 2004 10:19 am

hola, por mi vaga esperiencia te puedo decir que trabajar con sql(si conoces su sintaxis) desde visual basic es sumamente sencillo. Lo único
que hay k hacer es conectarse al servidor sql y lanzarle sentencias sql(con sentencias me refiero tanto a select,insert,delete,etc).

Ahora si no conoces sql creo que se puede trabajar con un recordset para añadir, eliminar,etc.
--------------------
FREE YOUR MIND
--------------------
xxxNeOxxx
Miembro activo

Mensajes: 32
Registrado: Mié Jun 16, 2004 9:38 am
Arriba

Re: Bd Visual Basic 6.0 Y Sql Server2000


por SOLO VISUAL PUEDE » Sab Jul 17, 2004 6:47 pm

AGRADEZCO MUCHO LA COLABORACIÓN E INFORMO QUE YA HE PODIDO HACER LA CONEXIÓN DE VB CON SQL
SERVER E INCLUSO HE PODIDO INSERTAR REGISTROS MEDIANTE "INSERT TO...." SOLO QUE PARA ELIMINAR
REGISTROS MEDIANTE EL SIGUIENTE CÓDIGO:

Private Sub Elimina_Click()


Set DB = New Connection
DB.CursorLocation = adUseClient
'DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\Evalua.mdb"
DB.Open "Provider=SQLOLEDB.1;" & _
"Integrated Security=SSPI;Persist Security Info=False;User ID=eval;Initial Catalog=Evaluasql;Data Source=powerweb\sqlserver2000"
busca = CveAlumTxt.Text
SQL = "DELETE * FROM Alumno WHERE CveAlum = '" & busca & "'"
Set RS = DB.Execute(SQL)
End Sub

DONDE:
busca: es la clave del alumno que va a eliminar
ME MARCA UN ERROR EN

SQL = "DELETE * FROM Alumno WHERE CveAlum = '" & busca & "'"

DICIENDO " SINTAXIS INCORRECTA CERCA DE LA PALABRA CLAVE "*" " ¿A QUÉ SE DEBE?
SOLO VISUAL PUEDE
Nuevo miembro

Mensajes: 4
Registrado: Jue Jul 08, 2004 7:28 pm
Arriba

Re: Bd Visual Basic 6.0 Y Sql Server2000


por Cyclop » Sab Jul 17, 2004 8:58 pm

Tienes que crear una conexion via ODBC el resto es lo mismo, para mayor informacion utiliza el entorno de datos y despues lo haces via
codigo.

Salu2
Icotext Evolution v0.5 para los amantes del ASCII Art
http://www.geocities.com/icotext/spanish/

Cyclop
Miembro MUY activo

Mensajes: 322
Registrado: Jue Jul 10, 2003 5:08 pm
Ubicación: Peru

• Sitio web

Arriba

Re: Bd Visual Basic 6.0 Y Sql Server2000


por Shiquilla » Dom Jul 18, 2004 3:50 pm

La sintaxis de la Delete es:

Mostrar/Ocultar Número de línea | Expandir/Contraer | Seleccionar todo

1. DELETE FROM Tabla WHERE Campo = LoQueSea

Tu codigo sería así:

Mostrar/Ocultar Número de línea | Expandir/Contraer | Seleccionar todo

1. SQL = "DELETE FROM Alumno WHERE CveAlum = '" & busca & "'"

Saludos.
Ayuda en VB 6.0 Y SQL SERVER 2000
Hola soy nuevo en esto de conexiones con sql server y visual basic mi problema es
que tengo un formulario y quiero guardar los datos en el pero por extrañas razones
mm no me guarda!! nadaa en mi tabla de base de datos porfavor alguien que sepa
hacer esto que me de una mano o me diga en que estoy mal aqui les dejo mi codigo

porfavor es de suma importancia se los agradecere un buen!!!

Private conecta As ADODB.Connection


Private registro As ADODB.Recordset

(COMMAND GUARDAR)

Private Sub Command2_Click()

'conecta.Close

conecta.Open
registro.ActiveConnection = conecta
x = Val(Text1.Text)

registro.Source = "SELECT * FROM cambios_tienda where id_cambio =" & x & ""

registro.Open
If registro.BOF = True And registro.EOF = True Then

registro.AddNew
Text1.Text = registro.Fields(0)
Text2.Text = registro.Fields(1)
Text3.Text = registro.Fields(2)
text4.Text = registro.Fields(3)
Text5.Text = registro.Fields(4)
'Text6.Text = registro.Fields(5)
'Text7.Text = registro.Fields(6)

registro.Update

MsgBox "REGISTRO GUARDADO"


Else
MsgBox "Clave ya guardada"

End If

registro.Close
conecta.Close

End Sub
Private Sub Form_Load()

Set conecta = Nothing


Set registro = Nothing

Set conecta = New ADODB.Connection


Set registro = New ADODB.Recordset

'conecta.ConnectionString = "DSN=origen"
'conecta.Open
'Se crea la conexion ala base de datos en sql server 2000 con las licencias que
requiere windows
conecta.Open "Provider= SQLOLEDB.1; " & "Initial Catalog=" & "Prueba bd" & "; " &
"Data Source=" & "SATANIC-FD8C1F3" & "; " & "integrated security=SSPI; persist
security info=True;"

registro.ActiveConnection = conecta
registro.CursorType = adOpenDynamic
registro.LockType = adLockBatchOptimistic

registro.Source = "select *from cambios_tienda"


registro.Open
Text1.Text = registro.Fields(0)
Text2.Text = registro.Fields(1)
Text3.Text = registro.Fields(2)
text4.Text = registro.Fields(3)
Text5.Text = registro.Fields(4)
'Text6.Text = registro.Fields(5)
'Text7.Text = registro.Fields(6)

registro.Close
conecta.Close

End Sub

Aquí muestra que la conexión esta solo que al momento de guardar datos en la
tabla no me guarda nada.

sql server2000 + visual basic 6.0


Respuesta de

athrarn

Cerrar

antoniobetan
Cerrar

en

Lenguaje SQL

02/08/2003

31/07/2003

Usuario

Anuncios Google

Curso Visual Basic.net

Aprende Cómoda y Rápidamente

Desde Tu Casa. ¡Infórmate aquí!

www.seas.es

HOLA EXPERTO UN CORDIAL SALUDO DESDE VENEZUELA, QUISIERA SABER COMO HAGO EN
VISUAL BASIC PARA CONTROLAR UNA BD EN SQL S 2000 , APLICANDO FORMULARIOS TAL
COMO SI ESTUVIERA EN UNO DE LOS EJEMPLOS DE ACCESS

01/08/2003

Experto

Lo que quieres hacer, si no te he entendido bien, es una conexion remota a la base de datos de SQL
Server y a partir ella, controlarla a partir de formularios generados en Visual Basic.

Para ello, te remito a una pregunta que ya me hicieron a la que contesté esto (la he modificado para SQL
Server) :

Create una conexion ADO de este estilo :

me genero una clase para controlar la conexion y añado al menu de referencias las Microsoft Ado 2.5
Library.

La clase es de este estilo :


Option Explicit

Private Conexion As ADODB.Connection

Dim innerRS As ADODB.Recordset

Private Sub Class_Initialize()


On Error GoTo FalloConexion
Set Conexion = New ADODB.Connection
Conexion.ConnectionString = strMontarCad(LOGIN, PASS, "", SERVICIO)
Conexion.Open
Exit Sub
FalloConexion:
MsgBox Err.Description
End Sub
Private Function strMontarCad(ByVal PestrUsuario As String, ByVal PestrClave As String, ByVal
PestrServidor As String, ByVal PestrBD As String) As String
Dim mCadenaConex As String
' Esta era la cadena para conectar a Oracle
'mCadenaConex = "Provider=MSDAORA.1;Password=" & PestrClave & ";User ID=" & PestrUsuario &
";Data Source=" & PestrBD & ";Persist Security Info=True"
' Otra cadena para conectar a Oracle, pero por OLEDB
'mCadenaConex = "Provider=OraOLEDB.Oracle.1;Password=" & PestrClave & ";User ID=" &
PestrUsuario & ";Data Source= " & PestrBD & ";Persist Security Info=true"
' La que te interesa, para conectar con SQL SERVER
' O esta :
'mCadenaConex = "server=tonydev;database=northwind;uid=tony;pwd=hrmmm"' O esta
'mCadenaConex = "server=tonydev;database=northwind;trusted_connection=yes"
'Una cadena para conectar con ACESS
'mCadenaConex = "Provider =Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path &
"\BaseDeDatos\Primarios.mdb;"
strMontarCad = mCadenaConex
End Function

Public Function ExecuteQuery(SQL As String) As ADODB.Recordset


Set innerRS = New ADODB.Recordset
innerRS.CacheSize = 30
innerRS.Open SQL, Conexion.ConnectionString, adOpenForwardOnly, adLockBatchOptimistic,
adAsyncFetch
Set ExecuteQuery = innerRS
End Function

Public Sub ExecuteSQL(SQL As String)


Conexion.BeginTrans
Conexion.Execute SQL
Conexion.CommitTrans
DoEvents
End Sub

Private Sub Class_Terminate()


If (Conexion.State <> adStateClosed) Then
Conexion.Close
End If
End Sub

Una vez creada la clase, digamos que la llamamos ClsConexion. Se usaria de este modo :

Te declaras un objeto de la clase :

Public Conexion As ClsConexion


Set Conexion = New ClsConexion

Una vez declarado el objeto, para generar una consulta solo debes hacer lo siguiente :

Dim SQL As String


Dim rsPrivado As Recordset
SQL = "Select PAGOS from TABLAPAGOS "
Set rsPrivado = Conexion.ExecuteQuery(SQL)

' A partir de esto, rsPrivado contiene los datos de la consulta. De este modo,
' rsPrivado(0).value sera el primer campo del valor resultado de la SQL Y en este caso el único...
Para el caso 2 :

SQL = "Select APELLIDOS from TABLAAPELLIDOS where APELLIDOS <> 'MEZA ALVA'
GROUP BY APELLIDOS"
Set rsPrivado = Conexion.ExecuteQuery(SQL)

en este caso, para recorrerte los campos de la consulta, tendrás que hacerlo de este modo :

' Desde el primer elemento, al último...


While Not rsPrivado.EOF
msgBox( rsPrivado(0))
' Escribir rs(Privado(0) es lo mismo que poner rsPrivado ("APELLIDOS")
' Bien, ahora pasariamos al siguiente elemento...
rsPrivado.MoveNext
' Y cerramos el bucle...
Wend

Si obteniendo los campos de ese modo y almacenas un array de IDs por registro, solo tienes que hacer
los updates y los deletes por SQL

con el objeto conexion y el método executeSQL.

Ahora si, antes de hacer la actualizacion o borrado del campo, puedes validar que este existe. Con la
sentencia Select.

Asi cargo yo un combo :

Dim rsPrivado As Recordset


Dim SQL As String

SQL = "Select " & CampoId & " , " & CampoDescripcion & _
" from " & strTabla
If Where <> "" Then
SQL = SQL & " WHERE " & Where
End If
SQL = SQL & " GROUP BY " & CampoId & " , " & CampoDescripcion
SQL = SQL & " ORDER BY " & CampoDescripcion
Set rsPrivado = Conexion.ExecuteQuery(SQL)
While Not rsPrivado.EOF
Me.Combo1.AddItem rsPrivado(1)
ReDim Preserve ArrayPosicionID(0 To Combo1.ListCount - 1)
ArrayPosicionID(UBound(ArrayPosicionID)) = rsPrivado(0)
rsPrivado.MoveNext
Wend
If Combo1.ListCount <> 0 Then
Combo1.ListIndex = 0
End If

Вам также может понравиться