Visual Basic - VB6 a VB2008

Life is soft - evento anual de software empresarial
   
Vista:

VB6 a VB2008

Publicado por José Antonio (2 intervenciones) el 11/10/2008 13:32:21
Buenos días:

Hasta ahora, he estado programando en Visual Basic 6 para el manejo de bases de datos de Access, pero ya creo va siendo hora de adaptarme a las nuevas versiones y los nuevos conceptos de programación, sobre todo de acceso a datos. La pregunta es la siguiente: adjunto un pedazo de código, con la forma habitual de manejar una tabla de una base de datos en VB6, ¿ Cual sería el equivalente en VB 2008?, ya sea Access o SQL Express.:
------------------------------------------------------

Modulo.bas (declaracion de datos)
----------
Option Explicit
Public dBA As Database
Public tbA As Recordset
Public tbB As Recordset
Public tbC As Recordset
-----------------------

Private Sub main()

Set dBA = Workspaces(0).OpenDatabase(App.Path & "A.mdb")
Set tbA = dBA.OpenRecordset("A", dbOpenTable)
Set tbB = dBA.OpenRecordset("B", dbOpenTable)
Set tbC = dBA.OpenRecordset("C", dbOpenTable)

tbA.Index = "Codigo"
tbB.Index = "Nombre"
tbC.Index = "Codigo"
CargarDatos.Show

End Sub

ejemplo Manipulacion de datos:

private sub Cargardatos()

Dim cadena As String
Dim car As String
Dim nom, ap1, ap2 As String
Dim n, i As Integer
Dim Contador As Integer
Dim sw As Integer
Dim cCod As Double
Do While Not tbC.EOF
cadena = tbC("Cliente")
sw = 0
car = ""
cCod = cCod + 1
ap1 = ""
ap2 = ""
nom = ""
For Contador = 1 To Len(cadena)
car = Mid(cadena, Contador, 1)
If car = " " Then
sw = 1
ElseIf car = "," Then
sw = 2
End If

If sw = 0 Then
ap1 = ap1 + car
ElseIf sw = 1 Then
If car = " " Then
Else
ap2 = ap2 + car
End If
Else
If car = "," Then
Else
nom = nom & car
End If
End If
Next Contador

tbA.AddNew
tbA("Codigo") = cCod
tbA("Nombre") = nom
tbA("Apellido1") = ap1
tbA("Apellido2") = ap2
tbA.Update

tbC.MoveNext
Loop

End Sub
-----------------------------------------------------------------------
Muchas gracias
José Antonio
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:VB6 a VB2008

Publicado por ingeniero ramirez (34 intervenciones) el 11/10/2008 13:50:44
Un salto muy grande quieres dar, todavía trabajas con DAO que es de la época de VB3 y ya quieres hacer una conexión en VB2008 y con SQLEXPRESS

Bueno, te pongo un simple ejemplo para conectar una BD sqlexpress y mostrar los datos de una tabla en un control DataGridView

Imports System.Data.OleDb

Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim cn As New OleDbConnection( _
"Provider=SQLOLEDB.1;" & _
"Integrated Security=SSPI; " & _
"Persist Security Info=False;" & _
"User ID=usuario;" & _
"Initial Catalog=NombreBD;" & _
"Data Source=(local)SQLEXPRESS")

Try
Dim da As New OleDbDataAdapter("SELECT * From NombreTabla", cn)
Dim ds As New DataSet

da.Fill(ds, "NombreTabla")

With DataGridView1
.DataSource = ds.Tables("NombreTabla")
.Refresh()
End With
Catch ex As Exception
MsgBox(ex.Message.ToString)
Finally
If cn.State = ConnectionState.Open Then
cn.Close()
End If
End Try
End Sub
End Class
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VB6 a VB2008

Publicado por José Antonio Ruiz (2 intervenciones) el 11/10/2008 14:43:12
Muchas gracias Ramirez.

Llevaba 2 días buscando la forma de abrir una base de datos mediante código, m he comprado algún manual, pero no venia nada, siempre se refieren a controles.

Te lo agradezco
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VB6 a VB2008

Publicado por ingeniero ramirez (34 intervenciones) el 11/10/2008 18:09:22
Es lo normal con la mayoría de los manuales, olvidan el apartado correspondiente a bases de datos.

No sé si será porque es la parte mas complicada (???) de la programación, o porque consideran que ese tema corresponde a los programas SGBD.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar