powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / excel.Формирование базы данных и импорт
11 сообщений из 11, страница 1 из 1
excel.Формирование базы данных и импорт
    #33818050
klukva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Подскажите решение вот такой проблемы (сос ми, люди добрые, ну очень надо): Есть 3 листа excel. В первом листе форма - карта участника - со следующими полями: Фамилия; Имя; Отчество; Телефон;

Вбивая значения в форму(каждый раз новые, а предыдущие записи просто удалаются), во втором листе excel формируется база данных из значений полей: Фамилия; Имя; Отчество; Телефон; После сохранения документа к примеру добавляются новые записи в базу на втором листе.

И, наконец, в третьем листе тоже размещены поля: Фамилия; Имя; Отчество; Телефон; Значения которых можно выбрать из базы на втором листе книги.

Именно в таком порядке. Если в excel это неосуществимо, то где удобней будет сделать?
...
Рейтинг: 0 / 0
excel.Формирование базы данных и импорт
    #33818657
Taranaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В екселе осуществимо, но удобнее будет делать на аксесе...
...
Рейтинг: 0 / 0
excel.Формирование базы данных и импорт
    #33818733
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если это не коммерческая разработка, а типа учебного задания, то запросто можно и в Ексель все это сделать.
Допустим на листе 1 заголовки располагаются в колонке А, а значения пользователь вводит в колонку В. Например, "Фамилия" в ячейке А1 - значение "Иванов" в ячейке В1. "Имя" в ячейке А2 - значение "Иван" - в В2 и т.д.
Добавляем на лист 1 кнопку с панели инструментов (напр., "Формы") и назначаем кнопке макрос (заранее написанный или созданный: правый щелчок по кнопке - "Назначить макрос" - "Создать" появиться заготовка процедуры обработки события)

Код: plaintext
1.
2.
3.
4.
5.
6.
Sub Button1_Click()
Dim I as Long
   I = Sheets( 2 ).Range("A1").Currentregion.Rows.Count+ 1 
   Sheets( 1 ).Range("B1").Copy Sheets( 2 ).Cells(I, 1 )
   Sheets( 1 ).Range("B2").Copy Sheets( 2 ).Cells(I, 2 )
......
End Sub
На листе 3 можно организовать интервалы критериев для выброрки данных с листа 2 с помощью расширенного фильтра (Данные - Фильтр - Расширенный фильтр).
...
Рейтинг: 0 / 0
excel.Формирование базы данных и импорт
    #33818875
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кусок кода, который добавляет значание на определенный лист в книге. Здесь он добавляет новую строку на лист "Customers"
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
Private Sub OK_Click()
Application.ScreenUpdating = False
Dim tcontact As String
Dim tcompany As String
Dim tstreet As String
Dim tcity As String
Dim tcountry As String
Dim tphone As String
Dim temail As String
Dim tsheet As String
Dim blexist As Boolean
Dim blupdate As Boolean
Dim custno As Single
Dim ecust As Variant
Dim errmsg As String
Dim Msg, Style, Title, Response
errmsg = ""
If contact.Text = "" And company.Text = "" Then errmsg = errmsg & "- Contact Name or Company Name" & Chr( 10 )

If errmsg <> "" Then
    Title = "New Customer Input Missing"
    Style = vbInformation
    Msg = "The action cannot be completed until the following items have been entered:" & Chr( 10 )
    Msg = Msg & errmsg
    Response = MsgBox(Msg, Style, Title)
    GoTo endnow
End If

tsheet = ActiveSheet.Name


tcontact = contact.Value
tcompany = company.Value
tstreet = street.Value
tcity = city.Value
tcountry = country.Value
tphone = phone.Value
temail = email.Value

Sheets("Customers").Select

blexist = False
blupdate = False
Range("A1").Select
If ActiveCell.Offset( 1 ,  0 ).Text <> "" Then
    Range(ActiveCell.Offset( 1 ,  0 ), Selection.End(xlDown)).Select
Else
    ActiveCell.Offset( 1 ,  0 ).Select
End If

For Each ecust In Selection
    If ecust.Offset( 0 ,  1 ).Value = tcontact And ecust.Offset( 0 ,  2 ).Value = tcompany Then
        blexist = True
    End If
Next

If blexist = True Then
    Title = "Existing Customer Matched"
    Style = vbOKCancel
    Msg = "The new customer's contact name and company name match and existing customer." & Chr( 10 ) & Chr( 10 )
    Msg = Msg & "Would you like to update the existing customer's details?." & Chr( 10 ) & Chr( 10 )
    Msg = Msg & "Note: Clicking 'Cancel' will add these details as a new customer."
    Response = MsgBox(Msg, Style, Title)
    If Response = vbOK Then
        blupdate = True
        custno = ActiveCell.Value
    End If
End If

If blupdate = False Then
    Range("A1").Select
    If ActiveCell.Offset( 1 ,  0 ).Text <> "" Then
        Selection.End(xlDown).Select
        custno = ActiveCell.Value +  1 
        ActiveCell.Offset( 1 ,  0 ).Select
    Else
        ActiveCell.Offset( 1 ,  0 ).Select
        custno =  1 
    End If
End If

ActiveCell.Formula = custno
ActiveCell.Offset( 0 ,  1 ).Formula = tcontact
ActiveCell.Offset( 0 ,  2 ).Formula = tcompany
ActiveCell.Offset( 0 ,  3 ).Formula = tstreet
ActiveCell.Offset( 0 ,  4 ).Formula = tcity
ActiveCell.Offset( 0 ,  5 ).Formula = tcountry
ActiveCell.Offset( 0 ,  6 ).Formula = tphone
ActiveCell.Offset( 0 ,  7 ).Formula = temail


Sheets(tsheet).Select

endnow:
Application.ScreenUpdating = True
End Sub

а этот удаляет значение
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
Private Sub delcust_Click()
Application.ScreenUpdating = False
Dim custid As String
Dim ecustid As Variant
Dim ordsdel As Single
Dim ordercols As Integer
Dim ordrows As Single
Dim i As Integer
Dim c As Variant
Dim Response

custid = customer.Value

If custid <> "" Then
    custid = Left(custid, InStr( 1 , custid, ".") -  1 )
    
   
    
    Sheets("Customers").Select
    Range("A1").Select
    If ActiveCell.Offset( 1 ,  0 ).Text <> "" Then
        Range(ActiveCell.Offset( 1 ,  0 ), Selection.End(xlDown)).Select
    Else
        ActiveCell.Offset( 1 ,  0 ).Select
    End If
    
    For Each ecustid In Selection
        If ecustid = custid Then
            ecustid.Select
            Selection.EntireRow.delete
        End If
    Next
    
    If remcust.Value = True Then
    
        ordercols = Range("ordercols").Value
        Sheets("Orders").Select
        For i =  1  To ordercols
            
            Cells( 1 ,  4  + ((i -  1 ) *  12 )).Select
            If ActiveCell.Offset( 1 ,  0 ).Text <> "" Then
                
                ordsdel =  0 
                ActiveCell.Offset( 1 ,  0 ).Select
                Do Until ActiveCell.Text = ""

                    If ActiveCell.Value = custid Then
                        Range(ActiveCell.Offset( 0 , - 3 ), ActiveCell.Offset( 0 ,  8 )).delete Shift:=xlUp
                        ordsdel = ordsdel +  1 
                        Cells(ActiveCell.Row,  4  + ((i -  1 ) *  12 )).Select
                    Else
                        ActiveCell.Offset( 1 ,  0 ).Select
                    End If
                
                Loop
            
            End If
        
        Next
        
        If ordsdel =  1  Then
            Response = MsgBox("The customer ID " & custid & " was deleted and 1 order for this customer was also deleted.", vbInformation, "Customer Deleted")
        Else
            Response = MsgBox("The customer ID " & custid & " was deleted and " & ordsdel & " orders for this customer were also deleted.", vbInformation, "Customer Deleted")
        End If
    
    Else
    
        Response = MsgBox("The customer ID " & custid & " was deleted.", vbInformation, "Customer Deleted")
    
    End If
    
    customer.clear

    Sheets("Customers").Select
    Range("A1").Select
    Selection.CurrentRegion.Select
    Selection.Sort key1:=Range("B2"), Order1:=xlAscending, Header:= _
            xlGuess, OrderCustom:= 1 , MatchCase:=False, Orientation:=xlTopToBottom
    
    Range("A2").Select
    If ActiveCell.Offset( 1 ,  0 ).Text <> "" Then
        Range(Selection, Selection.End(xlDown)).Select
    End If
    
    For Each c In Selection
        If c.Text <> "" Then
            customer.AddItem (c.Value & ". " & c.Offset( 0 ,  1 ).Value & " (" & c.Offset( 0 ,  2 ).Value & ")")
        End If
    Next
    
    
    Sheets("Control").Select
End If

Application.ScreenUpdating = True
End Sub
...
Рейтинг: 0 / 0
excel.Формирование базы данных и импорт
    #33818881
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ID Contact Name Company Name Street Address City, State, Zip/Postcode Country Phone/Fax Email Address - то, как должен выглядеть лист "Кастомерс"
...
Рейтинг: 0 / 0
excel.Формирование базы данных и импорт
    #33818889
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужный пример базы данных на эксель лежит по адресу __http://www.excelbusinesstools.com/invoice.htm - скачайте триал
...
Рейтинг: 0 / 0
excel.Формирование базы данных и импорт
    #33819125
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужный пример базы данных на эксель лежит по адресу __http://www.excelbusinesstools.com/invoice.htm - скачайте триал
...
Рейтинг: 0 / 0
excel.Формирование базы данных и импорт
    #33820565
klukva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
excel.Формирование базы данных и импорт
    #35134696
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
ЕЩЁ ПРИМЕР!!!
Честно, до конца не догнал ответы.
Лучше помогите разобраться на моем примере.
На рабочем листе (Лист1) вызывается формочка с парочкой TextBox,
после ввода данных, например:
TextBox1 - Вован
TextBox2 - 74-53-65
и после нажатия CommandButton1 необходимо эти данные
сохранять на втором листе (Лист2), типа база данных.
в строке 1:
______А_________В_______С
1.....Вован......74-53-65
После повторого нажатия на CommandButton1 данные
сохраняются на следующей строке, т.е. на строке 2 и т.д.
______А_________В_______С
2....Жирик.....47-35-56
...
Рейтинг: 0 / 0
excel.Формирование базы данных и импорт
    #35135257
Фотография Rampage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕЩЁ ПРИМЕР!!!
Честно, до конца не догнал ответы.

вот.. впринципе проверяет пустая ли ячейка или нет... если нет то пишет твои 3 значения..
кидай это в формы..
можешь прям в CommandButton1_click


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Public Sub VasyaKolya()

For introw2 =  2  To  500 
If Worksheets("sheet2").Cells(introw2,  1 ) =  0  Then
GoTo  150 
End If
Next introw2
 150 :
a = TextBox1.Value
b = TextBox2.Value
c = TextBox3.Value
Worksheets("sheet2").Cells(introw2,  1 ) = a
Worksheets("sheet2").Cells(introw2,  2 ) = b
Worksheets("sheet2").Cells(introw2,  3 ) = c
End Sub
...
Рейтинг: 0 / 0
excel.Формирование базы данных и импорт
    #35135260
Фотография Rampage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но лучше в клике напиши
call VasyaKolya
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / excel.Формирование базы данных и импорт
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]