Como es esto en VB 2005 Beta 2

11/09/2005 - 19:34 por Luc | Informe spam
Buenas tardes a tod@s,

Perdonad que os pregunte así esto tan directamente pero es que después de
mirar en varios sitios la mayor parte de la información está dirigida a SQL
Server y yo me manejo con acceso a Access directamente.

La cuestión es que antes te podías cargar tu recordset y trabajar con los
datos de éste sin mucha historia. Sin embago, ahora ando un poco liado con
el DataSet, DataAdapter y las Rows para poder llegar a cada campo.

¿Como puedo moverme en los datos del DataSet para modificar el de un campo
específico de una fila específica?

En fin que si alguien me puede decir como sería la equivalencia de este
código de VB6 a VB 2005 Beta 2 creo que me serviría un poco para entender
como se hace ahora.

Gracias
Luc

Dim db As Database
Dim criterio As String
Dim rs As Recordset

Set db = DBEngine.Workspaces(0).OpenDatabase("c:\gestion\datos.mdb")
Set rs = db.OpenRecordset("SELECT CODCLI FROM CLIENTES")

If Me.[Cliente] > 1 Then
rs.FindNext ("CODCLI = " & Me.Cliente)
Else
rs.MoveLast
rs.MoveFirst
End If

If rs.EOF = False Then
Cliente = rs!Codcli
Else
MsgBox "HA LLEGADO AL FINAL DE LOS CLIENTES", , "FIN CLIENTES"
Cliente.SetFocus
rs.Close
End If
End If

Do Until rs.NoMatch
CONTARE = CONTARE + 1
rs.FindNext criterio
Loop
 

Leer las respuestas

#1 Eduardo Olaz
11/09/2005 - 22:49 | Informe spam
Lo primero que te debo comentar es que estás usando DAO, que no tiene casi
nada que ver con ADO.Net

Si pudiéramos decir que se parece a algo, esto sería el antiguo ADO.
Primero debes establecer la conexión, "asimilable al objeto database":
Fíjate que lo de asimilable lo he puesto entre comillas.
Actualiza este código con tus datos.
Ésta es sólo una de las muchas posibilidads de resolver lo que pides.
______________________________

Private Sub cmdConectar_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles cmdConectar.Click
Dim cnn As New OleDb.OleDbConnection
Dim cmd As New System.Data.OleDb.OleDbCommand
Dim cmd2 As New System.Data.OleDb.OleDbCommand
Dim strConexion As String = _
"Provider = Microsoft.Jet.OleDb.4.0;" _
& "Data Source = C:\DatosMercado\DatosMercado.mdb"
Dim strSQL As String = "SELECT Marca" _
& " FROM(Marcas) " _
& "WHERE idFabricante=1;"
'Try
cnn.ConnectionString = strConexion
With cmd
.Connection = cnn
.CommandText = strSQL
End With
strSQL = "SELECT Count(Marca)" _
& " FROM(Marcas) " _
& "WHERE idFabricante=1;"
With cmd2
.Connection = cnn
.CommandText = strSQL
End With
cnn.Open()
Me.Text = cmd2.ExecuteScalar & " Registros"
If cnn.State = ConnectionState.Open Then
cnn.Close()
End If
End Sub
End Class

______________________________

De todas formas, para sería más fácil usar DataAdapter y DataSet

Saludos desde la calle Estafeta de Pamplona:

Eduardo Olaz
Microsoft [MVP] Access

eduardoALGARROBAolaz.net
ALGARROBA = @



"Luc" <j> escribió en el mensaje
news:
Buenas tardes a ,

Perdonad que os pregunte así esto tan directamente pero es que después de
mirar en varios sitios la mayor parte de la información está dirigida a
SQL Server y yo me manejo con acceso a Access directamente.

La cuestión es que antes te podías cargar tu recordset y trabajar con los
datos de éste sin mucha historia. Sin embago, ahora ando un poco liado con
el DataSet, DataAdapter y las Rows para poder llegar a cada campo.

¿Como puedo moverme en los datos del DataSet para modificar el de un campo
específico de una fila específica?

En fin que si alguien me puede decir como sería la equivalencia de este
código de VB6 a VB 2005 Beta 2 creo que me serviría un poco para entender
como se hace ahora.

Gracias
Luc

Dim db As Database
Dim criterio As String
Dim rs As Recordset

Set db = DBEngine.Workspaces(0).OpenDatabase("c:\gestion\datos.mdb")
Set rs = db.OpenRecordset("SELECT CODCLI FROM CLIENTES")

If Me.[Cliente] > 1 Then
rs.FindNext ("CODCLI = " & Me.Cliente)
Else
rs.MoveLast
rs.MoveFirst
End If

If rs.EOF = False Then
Cliente = rs!Codcli
Else
MsgBox "HA LLEGADO AL FINAL DE LOS CLIENTES", , "FIN CLIENTES"
Cliente.SetFocus
rs.Close
End If
End If

Do Until rs.NoMatch
CONTARE = CONTARE + 1
rs.FindNext criterio
Loop


Preguntas similares