Tarviikos tuohon MSysObjectsin käyttöön tehdä jotain erikoista, kun ei tunnu onnistuvan kysely siitä.
Dim strSelect As String = "SELECT Name FROM MSysObjects"
Dim dscmd As New OleDbDataAdapter(strSelect, cn)
' Load a data set.
Dim ds As New DataSet
dscmd.Fill(ds, "MSysObjects") ' Virhe
' Close the connection.
cn.Close()
virhe: An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll
Jos kyselylauseen tilalle vaihtaa jonkun muun samasta tietokannasta, eri taulusta, toimii haku aivan oikein. VB .NETstä tota ajan
Dim strSelect As String = "SELECT Name FROM MSysObjects"
Dim dscmd As New OleDbDataAdapter(strSelect, cn)
' Load a data set.
Dim ds As New DataSet
dscmd.Fill(ds, "MSysObjects") ' Virhe
' Close the connection.
cn.Close()
virhe: An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll
Jos kyselylauseen tilalle vaihtaa jonkun muun samasta tietokannasta, eri taulusta, toimii haku aivan oikein. VB .NETstä tota ajan
Vastaukset 4
Vanhimmat
Eli se on siis piilotettuna tauluna siellä accessissa ja siksi en siihen pääse käsiksi VB:stä. Tietääkö kukaan kuinka siihen pääsisi käsiksi accessin ulkopuolelta
Auttaisiko tämä: tee kysely (vaikka "qrySystData"), joka listaa haluamasi datat msysobjects-taulusta. Tee sitten operaatiot tuohon qrySystData -kyselyyn.
Ainakin Acc97:ssa toimii ihan tavallisessa modulissa oheinen koodinpätkä:
Function testaa()
Dim dbs As Database
Dim rst As Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("MSysObjects")
rst.MoveFirst
Do While Not rst.EOF
Debug.Print rst("Name")
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
Set dbs = Nothing
End Function
Vaihdat security asetuksista taululle lukuoikeudet