Supportnet / Forum / Datenbanken
Umgehen der Shift taste mit AllowBypassKey
Frage
Hallo,
Ich möcht gerne das sich ein Formular öffnet ohne das AutoExec vorgreift. In der Hilfe steht es sei möglich mit AllowBypassKey aber nicht wie mans genau macht .Hat jemand eine Idee.
Danke
Antwort 1 von disco
moin
ich hatte zwar keine ahnung was du wolltest, bzw. worum es genau ging, aber alsi ch mal nach AllowBypassKey gegoogelt habe, kam da einiges....
bspw das;
http://support.microsoft.com/default.aspx?scid=kb%3Bde%3BD39521
g,
disco
ich hatte zwar keine ahnung was du wolltest, bzw. worum es genau ging, aber alsi ch mal nach AllowBypassKey gegoogelt habe, kam da einiges....
bspw das;
http://support.microsoft.com/default.aspx?scid=kb%3Bde%3BD39521
g,
disco
Antwort 2 von Marie
ich verstehe nicht genau was Du da schreibst???
Die Autoexec läuft immer ab wenn eine existiert. Mit der Shift-Taste kannst Du die AutoExec ausschalten und deshalb die Datenbank öffnen ohne die Autoexec ablaufen zu lassen.
Du kannst in der Autoexec reinschreiben, dass Du das Öffnen mit der Shifttaste unterbinden willst und beim Start ein Formular öffnen willst. Vermutlich hast Du das auch so gemeint? Also beim Start Formular öffnen hast Du in der Autoexec stehen?? Und nun willst Du unterbinden, dass jemand die Autoexec ausschaltet und deshalb Dein Formular nicht geöffnet wird??
Dann schreib in die Autoecex: ausführen code Starteigenschaften ():
Public Function Starteigenschaften()
EigenschaftÄndern "AllowBypassKey", dbBoolean, True
End Function
Function EigenschaftÄndern(strEigName As String, varEigTyp As Variant, varEigWert As Variant) As Integer
Dim Dbs As DAO.DATABASE
Dim prp As Property
Const conPropNotFoundError = 3270
Set Dbs = CurrentDb
On Error GoTo Change_Err
Dbs.Properties(strEigName) = varEigWert
Change_Bye:
Dbs.close
Exit Function
Change_Err:
If err = conPropNotFoundError Then ´Eigenschaft nicht gefunden.
Set prp = Dbs.CreateProperty(strEigName, _
varEigTyp, varEigWert)
Dbs.Properties.Append prp
Resume Next
Else
Resume Change_Bye
End If
End Function
Die Autoexec läuft immer ab wenn eine existiert. Mit der Shift-Taste kannst Du die AutoExec ausschalten und deshalb die Datenbank öffnen ohne die Autoexec ablaufen zu lassen.
Du kannst in der Autoexec reinschreiben, dass Du das Öffnen mit der Shifttaste unterbinden willst und beim Start ein Formular öffnen willst. Vermutlich hast Du das auch so gemeint? Also beim Start Formular öffnen hast Du in der Autoexec stehen?? Und nun willst Du unterbinden, dass jemand die Autoexec ausschaltet und deshalb Dein Formular nicht geöffnet wird??
Dann schreib in die Autoecex: ausführen code Starteigenschaften ():
Public Function Starteigenschaften()
EigenschaftÄndern "AllowBypassKey", dbBoolean, True
End Function
Function EigenschaftÄndern(strEigName As String, varEigTyp As Variant, varEigWert As Variant) As Integer
Dim Dbs As DAO.DATABASE
Dim prp As Property
Const conPropNotFoundError = 3270
Set Dbs = CurrentDb
On Error GoTo Change_Err
Dbs.Properties(strEigName) = varEigWert
Change_Bye:
Dbs.close
Exit Function
Change_Err:
If err = conPropNotFoundError Then ´Eigenschaft nicht gefunden.
Set prp = Dbs.CreateProperty(strEigName, _
varEigTyp, varEigWert)
Dbs.Properties.Append prp
Resume Next
Else
Resume Change_Bye
End If
End Function
Antwort 3 von Marie
upps, natürlich schreibste dann
EigenschaftÄndern "AllowBypassKey", dbBoolean, False
aber vorsichtig, Du kannst dann selbst die Datenbank nicht mehr öffnen!!!!!! Immer eine Sicherheistkopie aufbewahren mit EigenschaftÄndern "AllowBypassKey", dbBoolean, True
Gruß Marie
EigenschaftÄndern "AllowBypassKey", dbBoolean, False
aber vorsichtig, Du kannst dann selbst die Datenbank nicht mehr öffnen!!!!!! Immer eine Sicherheistkopie aufbewahren mit EigenschaftÄndern "AllowBypassKey", dbBoolean, True
Gruß Marie
Antwort 4 von erik
Das stimmt so nicht, Marie. Eine Datenbank mit AllowBypassKey = False kann jederzeit wieder zurückgesetzt werden. Die betroffene Datenbank muss nur über VBA geöffnet und die Eigenschaft dann entsprechend manipuliert werden.
Deine Funktion verändert nur die lokale Datenbank. Wenn du ein optionales Datenbankobjekt an die Funktion übergibst, dann kannst du jede beliebige Datenbank verändern. Lässt du den ExternalDb-Parameter weg, dann wird wie bei deiner Version die lokale Datenbank aktualisiert:
Der kürzestmögliche Aufruf wäre demnach:
Deine Funktion verändert nur die lokale Datenbank. Wenn du ein optionales Datenbankobjekt an die Funktion übergibst, dann kannst du jede beliebige Datenbank verändern. Lässt du den ExternalDb-Parameter weg, dann wird wie bei deiner Version die lokale Datenbank aktualisiert:
Public Function ChangeProperty(PropertyName As String, DataType As DataTypeEnum, Value As Variant, Optional ExternalDb As Database) As Boolean
Dim db As Database
Dim prp As Property
Const conPropNotFoundError = 3270
If ExternalDb Is Nothing Then
Set db = CurrentDb
Else
Set db = ExternalDb
End If
On Error GoTo Change_Err
db.Properties(PropertyName) = Value
ChangeProperty = True
Change_Bye:
Exit Function
Change_Err:
If Err = conPropNotFoundError Then
Set prp = db.CreateProperty(PropertyName, DataType, Value)
db.Properties.Append prp
Resume Next
Else
´ Unknown error.
ChangeProperty = False
Resume Change_Bye
End If
End FunctionDer kürzestmögliche Aufruf wäre demnach:
ChangeProperty "AllowBypassKey", dbBoolean, True, OpenDatabase("C:\Ordner\Datenbank.mdb")Antwort 5 von zuboz
Also ihr habt mein problem ja verstanden aber ich bin etwas durcheinender wo soll ich nun was hinschreiben ?
Antwort 6 von Marie
Hallo Erik,
ich denke mal ein Hacker öffnet Dir alles, aber darum geht es ja hier nicht. Ich habe angenommen, dass er im Startmenü oder per Autoexec ein Formular öffnen will und nicht möchte, dass die Datenbank angezeigt wird, also tut es das doch allemal. Das ist der Code wie er in OH steht und IMO für einen Anfänger genau das Richtige. Warum machst Du ihn jetzt durcheinander?
Meine Datenbanken öffnest Du nicht mehr mit VBA, aber das hat mit dem AllowBypassKey absolut nix mehr zu tun. Falls er die Datenbank zusätzlich vor Zugriffen schützen möchte muss er halt danach fragen. Dann kriegt er auch darauf eine Antwort.
Gruß Marie
ich denke mal ein Hacker öffnet Dir alles, aber darum geht es ja hier nicht. Ich habe angenommen, dass er im Startmenü oder per Autoexec ein Formular öffnen will und nicht möchte, dass die Datenbank angezeigt wird, also tut es das doch allemal. Das ist der Code wie er in OH steht und IMO für einen Anfänger genau das Richtige. Warum machst Du ihn jetzt durcheinander?
Meine Datenbanken öffnest Du nicht mehr mit VBA, aber das hat mit dem AllowBypassKey absolut nix mehr zu tun. Falls er die Datenbank zusätzlich vor Zugriffen schützen möchte muss er halt danach fragen. Dann kriegt er auch darauf eine Antwort.
Gruß Marie
Antwort 7 von Marie
@zuboz
Du öffnest beim Start Dein Formular, das hast Du schon eingetragen?? In der Autoexec oder in extras Start?? So zum Beispiel in Formular/Seite anzeigen Dein Startformular anklicken:
http://www.tfh-wildau.de/rhirte/informatik/access_xp/abrunden.htm
Du hast doch eine Autoexec????
Wenn nicht legst Du jetzt eine solche an:
http://www.tfh-wildau.de/rhirte/informatik/access_xp/makro.htm
Dort schreibst Du als erstes in Aktion hinein:
ausführen Code und unten fügst Du dann in Funktionsname ein:
Starteigenschaften ()
Dann legst Du ein Modul an in das Du einfach den Text hineinkopirst, den ich Dir oben eingetragen habe.
Nun versuchs mal oder formulier Deine Frage anders, wenn Du was anderes wolltest oder frag weiter wenn Du nicht klarkommst.
Und mach Dir eine Sicherheitskopie vorher, sonst musst Du - wie Erik das beschrieben hat - die Property mit code von aussen wieder umändern. Das hat Erik gemeint, dass es doch ein Leichtes ist die Shifttaste wieder einzuschalten. Falls Du also verhindern willst, dass ein Experte an Deine datenbank kommt, dann musst Du schon andere Mittel ergreifen, aber dann frag bitte danach extra.
Du öffnest beim Start Dein Formular, das hast Du schon eingetragen?? In der Autoexec oder in extras Start?? So zum Beispiel in Formular/Seite anzeigen Dein Startformular anklicken:
http://www.tfh-wildau.de/rhirte/informatik/access_xp/abrunden.htm
Du hast doch eine Autoexec????
Wenn nicht legst Du jetzt eine solche an:
http://www.tfh-wildau.de/rhirte/informatik/access_xp/makro.htm
Dort schreibst Du als erstes in Aktion hinein:
ausführen Code und unten fügst Du dann in Funktionsname ein:
Starteigenschaften ()
Dann legst Du ein Modul an in das Du einfach den Text hineinkopirst, den ich Dir oben eingetragen habe.
Nun versuchs mal oder formulier Deine Frage anders, wenn Du was anderes wolltest oder frag weiter wenn Du nicht klarkommst.
Und mach Dir eine Sicherheitskopie vorher, sonst musst Du - wie Erik das beschrieben hat - die Property mit code von aussen wieder umändern. Das hat Erik gemeint, dass es doch ein Leichtes ist die Shifttaste wieder einzuschalten. Falls Du also verhindern willst, dass ein Experte an Deine datenbank kommt, dann musst Du schon andere Mittel ergreifen, aber dann frag bitte danach extra.
Antwort 8 von zuboz
Hallo,
Erstmal grosses DANKE SCHÖN für die Hilfe.
Ich habe ein AutoExec Das meine Datenbank jeden Tag aktuallisiert und am ende die DB wieder schließt.
Dieses will Ich behalten weil dahinter wieder ein anderer Automatismus steckt..also soweit klar?
nun möchte ich aber einen Link in eine Web-Seite setzen der auf ein Formular in der DB verlinkt ist.Das hab Ich auch gemacht. Das Problem ist nur Da AutoExec nicht umgangen worden ist läuft es durch und schliesst die DB am Ende wieder so das das ich das Formular auch nicht öffnen kann.Daher hab ich gedacht wenn isch dafür sorge das beim öffnen der DB Autoexec nicht gestartet wierd kann sich mein Formular problemlos öffnen.
Ist die Lösung die du mir vorgeschlagen hast nun immernoch richtig ? und wie öffne ich ein Modul...
Bitte alles in einzelnen Schritten erklären damit ich keine Fehler mache ...
Danke
zuboz
Erstmal grosses DANKE SCHÖN für die Hilfe.
Ich habe ein AutoExec Das meine Datenbank jeden Tag aktuallisiert und am ende die DB wieder schließt.
Dieses will Ich behalten weil dahinter wieder ein anderer Automatismus steckt..also soweit klar?
nun möchte ich aber einen Link in eine Web-Seite setzen der auf ein Formular in der DB verlinkt ist.Das hab Ich auch gemacht. Das Problem ist nur Da AutoExec nicht umgangen worden ist läuft es durch und schliesst die DB am Ende wieder so das das ich das Formular auch nicht öffnen kann.Daher hab ich gedacht wenn isch dafür sorge das beim öffnen der DB Autoexec nicht gestartet wierd kann sich mein Formular problemlos öffnen.
Ist die Lösung die du mir vorgeschlagen hast nun immernoch richtig ? und wie öffne ich ein Modul...
Bitte alles in einzelnen Schritten erklären damit ich keine Fehler mache ...
Danke
zuboz
Antwort 9 von zuboz
Ok also Ich ahbe in AutoExec als erst Aktion "AusführenCode" eingegeben uns als Funktionsnamen "Starteigenschaften ()"
und ich habe ein neues Modul erstellt in dem ich den obrigen Code ein kopeirt habe
Public Function Starteigenschaften()
EigenschaftÄndern "AllowBypassKey", dbBoolean, True
End Function
Function EigenschaftÄndern(strEigName As String, varEigTyp As Variant, varEigWert As Variant) As Integer
Dim Dbs As DAO.DATABASE
Dim prp As Property
Const conPropNotFoundError = 3270
Set Dbs = CurrentDb
On Error GoTo Change_Err
Dbs.Properties(strEigName) = varEigWert
Change_Bye:
Dbs.Close
Exit Function
Change_Err:
If err = conPropNotFoundError Then ´Eigenschaft nicht gefunden.
Set prp = Dbs.CreateProperty(strEigName, _
varEigTyp, varEigWert)
Dbs.Properties.Append prp
Resume Next
Else
Resume Change_Bye
End If
End Function
False ...weil ich ja Shift umgehen will
aber ich kriege einen Fehler zurück der sagt er kann mit Starteigenschaften() nichts anfangen
Wo ist wohl mein Fehler ???
und ich habe ein neues Modul erstellt in dem ich den obrigen Code ein kopeirt habe
Public Function Starteigenschaften()
EigenschaftÄndern "AllowBypassKey", dbBoolean, True
End Function
Function EigenschaftÄndern(strEigName As String, varEigTyp As Variant, varEigWert As Variant) As Integer
Dim Dbs As DAO.DATABASE
Dim prp As Property
Const conPropNotFoundError = 3270
Set Dbs = CurrentDb
On Error GoTo Change_Err
Dbs.Properties(strEigName) = varEigWert
Change_Bye:
Dbs.Close
Exit Function
Change_Err:
If err = conPropNotFoundError Then ´Eigenschaft nicht gefunden.
Set prp = Dbs.CreateProperty(strEigName, _
varEigTyp, varEigWert)
Dbs.Properties.Append prp
Resume Next
Else
Resume Change_Bye
End If
End Function
False ...weil ich ja Shift umgehen will
aber ich kriege einen Fehler zurück der sagt er kann mit Starteigenschaften() nichts anfangen
Wo ist wohl mein Fehler ???
Antwort 10 von erik
Hallo Marie,
mit Hacken hat das nichts zu tun, sondern damit, dass du bereits mehrmals die gleiche Behauptung aufstellst, dass AllowBypassKey eine endgültige Angelegenheit ist. Siehe Supportnet-Archiv.
Das wollte ich nur geklärt wissen. :-)
mit Hacken hat das nichts zu tun, sondern damit, dass du bereits mehrmals die gleiche Behauptung aufstellst, dass AllowBypassKey eine endgültige Angelegenheit ist. Siehe Supportnet-Archiv.
Das wollte ich nur geklärt wissen. :-)
Antwort 11 von Marie
Hi Erik,
für einen Anfänger ist das so, der weiss nicht wie er die Datenbank wieder öffnen kann. Deshalb schreibe ich das Anfängern immer so.
Wenn er mal bissel mehr kann, dann sieht er ja in der ersten Antwort, in dem KB-Artikel, wie er die DB wieder öffnen kann.
Und ausserdem bin ich nicht so arg begeistert hier zu erläutern, wie man einen vom Benutzer gedachten Schutz aufheben kann.
Ich kann auch eine geschützte Exceldatei öffnen, aber sowas gehört nicht hierher. :-(
Gruß Marie
für einen Anfänger ist das so, der weiss nicht wie er die Datenbank wieder öffnen kann. Deshalb schreibe ich das Anfängern immer so.
Wenn er mal bissel mehr kann, dann sieht er ja in der ersten Antwort, in dem KB-Artikel, wie er die DB wieder öffnen kann.
Und ausserdem bin ich nicht so arg begeistert hier zu erläutern, wie man einen vom Benutzer gedachten Schutz aufheben kann.
Ich kann auch eine geschützte Exceldatei öffnen, aber sowas gehört nicht hierher. :-(
Gruß Marie
Antwort 12 von Marie
Also zuboz,
offensichtlich willst Du was ganz anderes?? Also irgendwie willst Du die Autoexec lassen aber umgehen. Das widerspricht sich doch, ich versteh nicht wirklich was Du willst.
Ich versteh auch nicht was Du für eine Fehlermeldung bekommst oder was Du falsch gemacht hast, ist aber egal, denn offensichtlich willst Du ja was ganz anderes.
Nein!!!
Wenn Du in der Autoexec richtig eingetragen hast:
Aktion "AusführenCode" und als Funktionsname "Starteigenschaften ()", dann wird an dieser Stelle die Function Starteigenschaften aufgerufen. Ein Modul musst Du nicht öffnen, Du rufst die Funktionen, die in dem Modul stehen, auf. Haste vielleicht anführungsstriche reingemacht?? dann mach sie weg. :-) Ansonsten schreib mal genau hin welche Fehlermeldung kommt.
Also nun sag mal genau was Du willst, wenn Du die Autoexec lässt und die am Ende Deine DB schliesst und das so bleiben soll, dann kannste danach kein Formular mehr öffnen. Wenn Du nach abarbeiten der Funktionen, die bleiben sollen, ein Formular öffnen willst und offen lassen willst, dann musst Du halt in der autoexec die letzte Aktion weglassen, die Deine DB schließt
jo, benenn die Autoexec mal einfach um und schon startet sie nicht mehr.
Du hast das mit dem Umgehen der Shift taste mit AllowBypassKey offensichtlich genau falsch herum verstanden.
Mit gedrückter Shifttaste beim Öffnen der Datenbank kann man die Autoexec umgehen. Sie wird dann nicht abgearbeitet, probier es mal aus.
Ich habe Dir erklärt, wie Du das mit Code abschalten kannst, dass also Dein Benutzer oder Du beim Öffnen nicht mehr mit der Shifttaste die Autoexec umgehen kannst.
Wenn ich Dich nun richtig verstanden habe wolltest Du eigentlich eher das Gegenteil??? Oder was willst Du wirklich??? :-))
Gruß Marie
offensichtlich willst Du was ganz anderes?? Also irgendwie willst Du die Autoexec lassen aber umgehen. Das widerspricht sich doch, ich versteh nicht wirklich was Du willst.
Ich versteh auch nicht was Du für eine Fehlermeldung bekommst oder was Du falsch gemacht hast, ist aber egal, denn offensichtlich willst Du ja was ganz anderes.
Zitat:
Ist die Lösung die du mir vorgeschlagen hast nun immernoch richtig ?
Ist die Lösung die du mir vorgeschlagen hast nun immernoch richtig ?
Nein!!!
Zitat:
und wie öffne ich ein Modul..
und wie öffne ich ein Modul..
Wenn Du in der Autoexec richtig eingetragen hast:
Aktion "AusführenCode" und als Funktionsname "Starteigenschaften ()", dann wird an dieser Stelle die Function Starteigenschaften aufgerufen. Ein Modul musst Du nicht öffnen, Du rufst die Funktionen, die in dem Modul stehen, auf. Haste vielleicht anführungsstriche reingemacht?? dann mach sie weg. :-) Ansonsten schreib mal genau hin welche Fehlermeldung kommt.
Also nun sag mal genau was Du willst, wenn Du die Autoexec lässt und die am Ende Deine DB schliesst und das so bleiben soll, dann kannste danach kein Formular mehr öffnen. Wenn Du nach abarbeiten der Funktionen, die bleiben sollen, ein Formular öffnen willst und offen lassen willst, dann musst Du halt in der autoexec die letzte Aktion weglassen, die Deine DB schließt
Zitat:
Daher hab ich gedacht wenn isch dafür sorge das beim öffnen der DB Autoexec nicht gestartet wierd kann sich mein Formular problemlos öffnen.
Daher hab ich gedacht wenn isch dafür sorge das beim öffnen der DB Autoexec nicht gestartet wierd kann sich mein Formular problemlos öffnen.
jo, benenn die Autoexec mal einfach um und schon startet sie nicht mehr.
Zitat:
Ich habe ein AutoExec Das meine Datenbank jeden Tag aktuallisiert und am ende die DB wieder schließt.
Dieses will Ich behalten weil dahinter wieder ein anderer Automatismus steckt..also soweit klar?
Nöööö!!! Du kannst nicht die Autoexec so behalten wollen wie sie ist und gleichzeitig umgehen wollen, das is absolut nicht klar, Du musst Dich schon entscheiden.Ich habe ein AutoExec Das meine Datenbank jeden Tag aktuallisiert und am ende die DB wieder schließt.
Dieses will Ich behalten weil dahinter wieder ein anderer Automatismus steckt..also soweit klar?
Du hast das mit dem Umgehen der Shift taste mit AllowBypassKey offensichtlich genau falsch herum verstanden.
Mit gedrückter Shifttaste beim Öffnen der Datenbank kann man die Autoexec umgehen. Sie wird dann nicht abgearbeitet, probier es mal aus.
Ich habe Dir erklärt, wie Du das mit Code abschalten kannst, dass also Dein Benutzer oder Du beim Öffnen nicht mehr mit der Shifttaste die Autoexec umgehen kannst.
Wenn ich Dich nun richtig verstanden habe wolltest Du eigentlich eher das Gegenteil??? Oder was willst Du wirklich??? :-))
Gruß Marie
Antwort 13 von zuboz
hi,
Also das Problem mit dem AutoExec ist gelöst du hattest recht es ist nicht möglich es zu umgehen also hab ichs umbenannt
aber nun hab ich ein neues, wenn ich über die Web-Seite auf die DB zugreiffe speert sich das Teil es erscheint im Ordner in dem Die DB liegt ein "Datenbankname.Idb" soll ein Access Record- Locking sein wie kann ich das verhindern? Hängt das mit einer Einstellung zusammen??????
Gruß...
Also das Problem mit dem AutoExec ist gelöst du hattest recht es ist nicht möglich es zu umgehen also hab ichs umbenannt
aber nun hab ich ein neues, wenn ich über die Web-Seite auf die DB zugreiffe speert sich das Teil es erscheint im Ordner in dem Die DB liegt ein "Datenbankname.Idb" soll ein Access Record- Locking sein wie kann ich das verhindern? Hängt das mit einer Einstellung zusammen??????
Gruß...
Antwort 14 von Marie
Hallo Zuboz,
ob eine Access-Datenbank geöffnet ist siehst Du daran, dass eine gleichnamige .ldb existiert. Das kannst und sollst Du nicht verhindern und hat nix mit irgendwelchen Sperrungen zu tun.
Aber was Du damit meinst:
Gruß Marie
ob eine Access-Datenbank geöffnet ist siehst Du daran, dass eine gleichnamige .ldb existiert. Das kannst und sollst Du nicht verhindern und hat nix mit irgendwelchen Sperrungen zu tun.
Aber was Du damit meinst:
Zitat:
wenn ich über die Web-Seite auf die DB zugreiffe speert sich das Teil
hab ich nicht verstanden????wenn ich über die Web-Seite auf die DB zugreiffe speert sich das Teil
Gruß Marie
Antwort 15 von zuboz
ok das letzte problem hat sich auch gelöst ;-)
Ich hab aber damit dir nicht langweilig wird gleich ne neue Frage
Ist es möclich von einem formular in einer db auf andere formulare auf anderen db zu kommen.
Also ich hab ein formular in einer db X und auf diesem formular hab ich eine Schaltfläche wenn sie ancklike will ich auf ein Formular in einer db Y
?????????????
Gruß...
Ich hab aber damit dir nicht langweilig wird gleich ne neue Frage
Ist es möclich von einem formular in einer db auf andere formulare auf anderen db zu kommen.
Also ich hab ein formular in einer db X und auf diesem formular hab ich eine Schaltfläche wenn sie ancklike will ich auf ein Formular in einer db Y
?????????????
Gruß...
Antwort 16 von Marie
Habs nicht ausprobiert, aber müsste eigentlich gehen. Probiers doch einfach und sag mir wo Du hängenbleibst.
Ich mach das über VB. Die eine Datenbank zu, die andere auf.
Gruß Marie
Ich mach das über VB. Die eine Datenbank zu, die andere auf.
Gruß Marie

