Discussione:
passaggio da access a SQL SERVER
(troppo vecchio per rispondere)
access
2007-04-24 21:38:36 UTC
Permalink
Buonasera a tutto il NG.

Questa sera ho installato SQL Server e finalmente sono riuscito ad importare
delle tabelle da access a SQL.

Ho però poi riscontrato un problema nel pannello di controllo e allora mi
sono chiesto come si deve modificare il codice sotto indicato per fare
riferimento ad una tabella in SQL server?

Private Sub FillOptions()
' Fill in the options for this switchboard page.

' The number of buttons on the form.
Const conNumButtons = 8

Dim con As Object
Dim rs As Object
Dim stSql As String
Dim intOption As Integer

' Set the focus to the first button on the form,
' and then hide all of the buttons on the form
' but the first. You can't hide the field with the focus.
Me![Option1].SetFocus
For intOption = 2 To conNumButtons
Me("Option" & intOption).Visible = False
Me("OptionLabel" & intOption).Visible = False
Next intOption

' Open the table of Switchboard Items, and find
' the first item for this Switchboard Page.
Set con = Application.CurrentProject.Connection
stSql = "SELECT * FROM [Switchboard Items]"
stSql = stSql & " WHERE [ItemNumber] > 0 AND [SwitchboardID]=" &
Me![SwitchboardID]
stSql = stSql & " ORDER BY [ItemNumber];"


Set rs = CreateObject("ADODB.Recordset") 'credo che l'inghippo sia qui




rs.Open stSql, con, 1 ' 1 = adOpenKeyset

' If there are no options for this Switchboard Page,
' display a message. Otherwise, fill the page with the items.
If (rs.EOF) Then
Me![OptionLabel1].Caption = "Nessuna voce per questa pagina pannello
di comandi"
Else
While (Not (rs.EOF))
Me("Option" & rs![ItemNumber]).Visible = True
Me("OptionLabel" & rs![ItemNumber]).Visible = True
Me("OptionLabel" & rs![ItemNumber]).Caption = rs![ItemText]
rs.MoveNext
Wend
End If

' Close the recordset and the database.
rs.Close
Set rs = Nothing
Set con = Nothing

End Sub



aiuto. GRAZIE
Ungi
2007-04-24 21:50:58 UTC
Permalink
Post by access
Buonasera a tutto il NG.
Il recordset dichiaralo così:


Dim Rst As New ADODB.Recordset

Non serve dichiarare la Conn
Post by access
Set rs = CreateObject("ADODB.Recordset") 'credo che l'inghippo sia qui
questo cancellalo




Al posto di questa
Post by access
rs.Open stSql, con, 1 ' 1 = adOpenKeyset
scrivi questa e riprova
Rst.Open stSql, CurrentProject.Connection, adOpenStatic,
adLockOptimistic

Nei riferimenti di Vba deve esserci quello di Ado (Microsoft Activex Data
Object)

Riprova e fammi sapere anche in serata
Ungi
access
2007-04-24 22:11:26 UTC
Permalink
Post by Ungi
Post by access
Buonasera a tutto il NG.
Dim Rst As New ADODB.Recordset
Non serve dichiarare la Conn
Post by access
Set rs = CreateObject("ADODB.Recordset") 'credo che l'inghippo sia qui
questo cancellalo
Al posto di questa
Post by access
rs.Open stSql, con, 1 ' 1 = adOpenKeyset
scrivi questa e riprova
Rst.Open stSql, CurrentProject.Connection, adOpenStatic,
adLockOptimistic
Nei riferimenti di Vba deve esserci quello di Ado (Microsoft Activex Data
Object)
Riprova e fammi sapere anche in serata
Ungi
Ciao Ungi, grazie per l'attenzione però ho capito che il problema forse è
un'altro vedi l'altro post.


Grazie per l'aiuto
access
2007-04-24 21:57:48 UTC
Permalink
Mi correggo, forse il vero problema è unl'altro in quanto ho notato che la
tabella relativa al pannello di controllo quando viene collegata al front
end di access perde i dati memorizzati all'interno, cioe:

tabella denominata "Switchboard Items":

1 campo "SwitchboardID" ' contiene
2 campo "ItemNumber"
3 campo "ItemText"
4 campo "Command"
5 campo "Argument"


i campi contengono te righe cioe:

SwitchboardID | ItemNumber | ItemText
| Command | Argument
1 | 0 | Pannello comandi
principale | NULL | NULL
1 | 1 | Permesso Provvisorio di
GUIDA | 3 | mProvvGuida
1 | 2 | Permesso provvisorio
CIRCOLAZIONE | 3 | mProvCircScelta

seppur quando apro la tabella in sql server risulta tutto come sopra
trascritto, quando collego la tabella al front end in access si trasforma
cosi (ma aprendo la tabella in sql server rimane comunque tutto corretto):

SwitchboardID | ItemNumber | ItemText
| Command Argument
1 0 Pannello comandi
principale
1 0 Pannello comandi
principale
1 0 Pannello comandi
principale


Come mai accade questo? qualcuno può darmi una mano?


Grazie
access
2007-04-24 22:25:10 UTC
Permalink
Post by access
Mi correggo, forse il vero problema è unl'altro in quanto ho notato che la
tabella relativa al pannello di controllo quando viene collegata al front
1 campo "SwitchboardID" ' contiene
2 campo "ItemNumber"
3 campo "ItemText"
4 campo "Command"
5 campo "Argument"
SwitchboardID | ItemNumber | ItemText | Command | Argument
1 | 0 | Pannello comandi
principale | NULL | NULL
1 | 1 | Permesso Provvisorio
di GUIDA | 3 | mProvvGuida
1 | 2 | Permesso provvisorio
CIRCOLAZIONE | 3 | mProvCircScelta
seppur quando apro la tabella in sql server risulta tutto come sopra
trascritto, quando collego la tabella al front end in access si trasforma
SwitchboardID | ItemNumber | ItemText | Command Argument
1 0 Pannello comandi
principale
1 0 Pannello comandi
principale
1 0 Pannello comandi
principale
Come mai accade questo? qualcuno può darmi una mano?
Grazie
Grazie comunque a tutti, ma ho risolto il problema.

non so precisamente cosa sia accaduto pero' mi sono accorto che la tabella
suddetta aveva due chiavi primarie e non so perchè quando importavo la
tabella con le due chiavi primarie impostate mi faceva quello scherzo.

Io ho eliminato entrambe le chiavi primarie, ho importato nuovamente la
tabella in SQL Server e quando ho effettuato il collegamento al front End,
solo impostando il secondo campo come chiave primaria mi funziona.


Bhoooo, l'importante che ho risolto.


Ciao grazie ancora a tutti.
Ungi
2007-04-24 22:33:52 UTC
Permalink
Post by access
Ciao grazie ancora a tutti.
Buonanotte

Continua a leggere su narkive:
Loading...